SlideShare a Scribd company logo
1 of 76
Download to read offline
MODUL PRAKTIKUM 
DASAR-DASAR PEMROGRAMAN JAVA 
Versi 1.2 
Copyleft By: 
Gianto Widodo, S.Kom 
JURUSAN TEKNIK INFORMATIKA 
UIN MALIKI MALANG 
2011 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 1
KATA PENGANTAR 
Alhamdulillah, Segala Puji Hanya untuk Allah Tuhan Yang Maha Berilmu. Atas petunjukNya-lah 
kami dapat menyelesaikan Diktat Praktikum Dasar-dasar pemrograman ini. Diharapkan dengan adanya 
diktat ini, mahaMahasiswa mendapatkan panduan dalam mengikuti Praktikum Dasar-dasar pemrograman 
pada Jurusan Teknik Informatika UIN Malang. 
Materi yang ditulis dalam buku ini berisi sebanyak 10 modul praktikum. Di dalamnya berisi 
tentang pemahaman dan konsep dasar pemrograman yang ditulis dengan menggunakan bahasa 
pemrograman Java. Isi buku disusun mulai dari teori penunjang/dasar teori, tugas pendahuluan yang 
berisi konsep yang harusdiketahui mahaMahasiswa sebelum melaksanakan praktikum serta percobaan 
dan latihan. Dengan mengacu pada diktat praktikum ini mahaMahasiswa diharapkan dapat memahami 
dan mengerti akan konsep dasar serta logika dalam pemrograman Java. Yang diharapkan nantinya bisa 
menjadi bekal untuk menjadi programmer yang handal dimasa mendatang. 
Sekalipun buku ini telah dikerjakan dengan proses yang cukup panjang, akan tetapi kami masih 
tidak menutup adanya kekurangan akan buku ini. Segala masukan, kritik dan review sangat kami 
harapkan untuk semakin menyempurnakannya pada kesempatan mendatang. 
Malang, 09 Februari 2011 
PENYUSUN 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 2
PETUNJUK PRAKTIKUM 
1. Mahasiswa wajib menyelesaikan tugas pendahuluan sebelum pelaksanaan praktikum. 
2. Tugas pendahuluan dikumpulkan 1 hari sebelum pelaksanaan praktikum pada assisten praktikum pada 
waktu yang telah disepakati 
3. Assisten praktikum akan memeriksa dan menguji pemahaman Mahasiswa tentang materi yang akan 
dipraktekkan keesokan harinya 
4. Mahasiswa yang tidak dapat mengikuti praktikum bila : 
a. Mahasiswa tidak mengumpulkan tugas pendahuluan 
b. Tugas Pendahuluan adalah hasil Copy dari milik praktikan lainnya 
c. Mahasiswa tidak dapat menjawab pertanyaan assisten praktikum 
d. Tugas pendahuluan yang dikerjakan tidak lengkap atau dibuat seadanya 
e. Dan sebab lain-lain yang telah disepakati bersama diantara dosen,assisten dan Mahasiswa 
5. Dilarang membawa piranti penyimpanan seperti flaskdisk, hardisk eksternal selama praktikum 
berlangsung 
6. Selama praktikum Mahasiswa mengerjakan sendiri programnya, jaringan computer,hubungan internet 
dimatikan sementara 
7. Dosen dan assisten praktikum tidak membetulkan kesalahan program Mahasiswa karena sintaks 
melainkan hanya membantu menjelaskan/memberikan konsep dari program yang akan dibuat. 
8. Tiga puluh menit sebelum praktikum berakhir dosen dan assisten praktikum akan memeriksa hasil 
program Mahasiswa 
9. Akhir praktikum Mahasiswa mengumpulkan hasil pengamatan program 
10. Seminggu setelah praktikum/Pada saat praktikum berikutnya Mahasiswa mengumpulkan laporan 
akhir dari praktikum terakhir sesuai format yang telah dicantumkan permodul. 
11. Mahasiswa/Praktikan Tidak diijinkan mengikuti praktikum jika terlambat lebih dari 20 menit. 
12. Pakaian Ketika praktikum adalah baju putih bukan kaos dan celana hitam kain untuk putra dan rok 
hitam untuk putri. Jika memakai pakaian yang melanggar tidak ada peringatan dan langsung di 
persilahkan meninggalkan praktikum atau ganti pakaian. Diperbolehkan jika memakai jas almamater 
dan bukan jaket. 
13. Ketika UTS atau UAS Semua praktikan mengenakan Jas Almamater. 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 3
DAFTAR ISI 
KATA PENGANTAR ..................................................................................................................... 
DAFTAR ISI ................................................................................................................................... 
PETUNJUK PRAKTIKUM............................................................................................................. 
MODUL 1 Pengenalan Java, Editor Dan Pembuatan Class .............................................................. 
MODUL 2 Tipe Data, Keyword, Variabel, Operator Dan Teknik Konfersi ...................................... 
MODUL 3 Input Dari Keyboard Dan Struktur Kontrol .................................................................... 
MODUL 4 Perulangan/Looping dan Break Continue ....................................................................... 
MODUL 5 Array/Larik (1 Dimensi) dan (Multidimensi) .................................................................. 
MODUL 6 Algoritma Sorting .......................................................................................................... 
MODUL 7 Exception Handling dan Method Dasar .......................................................................... 
MODUL 8 Dasar Aplikasi GUI (Graphical User Interface) Dasar .................................................... 
MODUL 9 Event Handling .............................................................................................................. 
MODUL 10 Pemrograman Database Dasar...................................................................................... 
DAFTAR PUSTAKA 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 4
MODUL 1 
PENGENALAN JAVA, EDITOR DAN SINTAKS JAVA 
A. Target Pembelajaran 
1. Mengenal bahasa pemrograman JAVA. 
2. Mampu membuat kelas sederhana dengan bahasa pemrograman JAVA. 
3. Mengerti penggunaan komentar dalam bahasa pemrograman JAVA. 
4. Mengetahui cara menggunakan Netbeans. 
5. Mengetahui Penggunaan Character Literal. 
B. Materi Dasar 
1. Pengenalan JAVA 
Java adalah salah satu bahasa pemrograman yang bersifat open source yang merupakan produk dari 
Sun Microsystem dan sekarang di pegang oleh oracle. 
Bahasa Java adalah bahasa modern yang telah diterima masyarakat komputasi dunia. Hampir semua 
perusahaan perangkat lunak dan komputer besar mendukung dan mengembangkan aplikasi sistem 
berbasis Java. 
Java adalah salah satu bahasa pemrogaman Multiplatform (Bisa berjalan di berbagai macam sistem 
operasi) karena pada dasarnya java mempunyai Jre (java runtime environment) atau dapat kita artikan 
sebagai mesin tersendiri untuk mengeksekusi binary code hasil dari compilasi program yang telah kita 
buat, bereda dengan bahasa pemrograman vb, c++ yang memanfaatkan komponen sistem dalam 
Windows untuk mengeksekusi binary code hasil kompilasi program.. 
Pada Tahun 1996, Sun Microsystem secara resmi merilis versi awal Java yang kemudian terus 
berkembang hingga muncul JDK 1.1 (Java Development Kit versi 1.1). Perkembangan terus dilakukan 
hingga muncul versi baru yang disebut Java 2. Perubahan utama antara versi sebelumnya adalah adanya 
Swing yang merupakan teknologi Graphical User Interface (GUI) yang mampu menghasilkan aplikasi 
desktop yang benar-benar baik. 
Untuk mengembangkan aplikasi berbasis java, kita memerlukan Java Development Kit(JDK), saat ini 
java telah mencapai versi 2 yang kenal dengan java 2 platform. Java 2 platform, dibagi menjadi tiga 
kategori yaitu: 
1. Java 2 Standart Edition (J2SE) 
2. Java 2 Enterprice Edition(J2EE) 
3. Java 2 Micro Edition(J2ME) 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 5
2. Instalasi JDK 
Sebelum anda membuat aplikasi dengan java maka anda harus menginstal software bahasa 
pemrograman java. java dapat anda dapatkan dengan cara download di alamat link berikut 
http://java.sun.com. Kemudian setelah anda mendownloadnya maka mulai dengan menginstall, pada 
dasarnya proses insalasi java sangat mudah yaitu dengan cara mengklik ganda pada file master java 
kemudian ikuti prosedur yang diperintahkan. 
3. Editor Java 
Ada banyak editor yang bisa kita gunakan untuk menuliskan soce code bahasa pemrograman java, 
bahkan semua editor dimungkinkan selama editor tersebut mampu menyimpan file dengan ekstensi .java 
yang merupakan ekstensi dari file untuk menyimpan source code bahasa pemrograman java. Beberapa 
contoh editr yang bias kita pakai misalnya : 
- Netbens 
- Notepad 
- Eclips 
- dll 
4. Program Java Pertama 
Kita akan coba untuk menganalisa program Java pertama pada contoh berikut: 
public class Hello 
{ 
/** 
* My first java program 
*/ 
public static void main(String[] args) { 
System.out.println("Hello world!"); 
} 
} 
Baris pertama kode : 
public class Hello 
Menandakan nama class yaitu Hello. Dalam Java semua kode seharusnya ditempatkan didalam deklarasi 
class. kita melakukannya dengan menggunakan kata kunci class. 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 6
Baris berikutnya yaitu yang terdiri atas kurung kurawal { menandakan awal blok. kita dapat juga 
meletakkan kurung kurawal ini setelah baris pertama dari kode yang kita tulis. Jadi, kita dapat menulis 
kode kita sebagai berikut : 
public class Hello 
{ } 
atau 
public class Hello { } 
Tiga baris selanjutnya menandakan adanya komentar Java. Komentar adalah sesuatu yang digunakan 
untuk mendokumentasikan setiap bagian dari kode yang ditulis. Komentar bukan merupakan bagian 
dari program itu sendiri, tetapi digunakan untuk tujuan dokumentasi. Komentar itu sendiri dapat 
ditambahkan pada kode yang Anda tulis sebagai petunjuk yang dapat membantu proses pembelajaran 
pemrograman yang baik. 
/** 
* My first java program 
*/ 
Komentar dinyatakan dengan tanda “/*” dan “*/”. Segala sesuatu yang ada diantara tanda 
tersebut diabaikan oleh compiler Java, dan mereka hanya dianggap sebagai komentar sedangkan untuk 
membuat sebuah atau satu baris komentar dengan cara berikut ini 
// ini adalah program pertamaku. Semua tulisan yang berada satu baris dengan tan da // akan diabaikan 
oleh compiler. 
Baris selanjutnya, 
public static void main(String[] args) { } 
atau dapat juga ditulis sebagai berikut, 
public static void main(String[] args) 
{ } 
mengindikasikan nama suatu method dalam class Hello yang bertindak sebagai method utama. 
Method utama adalah titik awal dari suatu program Java. Semua program kecuali applet yang ditulis 
dalam bahasa Java dimulai dengan method utama. Yakinkan untuk mengikuti kaidah penulisan 
tanda yang benar. 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 7
MODUL 2 
TIPE DATA, KEYWORD, VARIABEL, OPERATOR 
DAN TEKNIK KONFERSI 
A. Target Praktikum 
- Mahasiswa mengetahui berbagai macam tipe data dan penggunaannya 
- Mahasiswa mengetahui berbagai macam keyword 
- Mahasiswa mengetahui cara pembuatan variable dan penggunaannya. 
- Mahasiswa mengetahui konfersi tipe data 
- Mahasiswa mampu menyelesaikan permasalahan terkait penggunaan variable dan tipe data 
- Mahasiswa mengetahui berbagai macam operator java dan penggunaannya 
- Mahasiswa mampu menyelesaikan permasalahan terkait penggunaan operator 
B. Materi Dasar 
1. Keyword dalam Java 
Kata kunci adalah identifier yang telah dipesan untuk didefinisikan sebelumnya oleh Java untuk 
tujuan tertentu. Anda tidak dapat menggunakan keyword sebagai nama variabel, class, method. 
Berikut Ini Keyword Java : 
abstract default if private throws 
boolean do import public try 
break double int return void 
byte else static short while 
case extends long super const 
catch final native switch for 
char finally new this continue 
class float package throw transient 
2. Tipe Data Primitif 
Bahasa pemrograman Java mendefinisikan delapan tipe data primitif. Mereka diantaranya adalah 
boolean (untuk bentuk logika), char (untuk bentuk tekstual), byte, short, int, long (integral), double 
and float (floating point). 
3. Variabel 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 8
Variabel adalah item yang digunakan data untuk menyimpan pernyataan objek. Variabel memiliki tipe 
data dan nama. Tipe data menandakan tipe nilai yang dapat dibentuk oleh variabel itu sendiri. 
Nama variabel harus mengikuti aturan untuk identifier. 
Berikut Aturan penamaan variable : 
• Diawali dengan 
▫ huruf/abjad 
▫ karakter mata uang 
▫ underscore ( _ ) 
• Terdiri dari huruf/abjad, angka dan underscore 
• Tidak boleh mengandung karakter khusus atau spasi 
• Tidak boleh diawali dengan angka 
3.1 Deklarasi dan Inisialisasi Variabel 
Untuk deklarasi variabel adalah sebagai berikut, 
<data tipe> <name> [=initial value]; 
Nilainya berada diantara <> adalah nilai yang disyaratkan, sementara nilai dalam tanda [] bersifat optional 
sesuai dengan tipe data yang dipakai untuk deklarasi variabel. 
3.2 Menampilkan Data Variabel 
Untuk mengeluarkan nilai dari variabel yang diinginkan, kita dapat menggunakan perintah sebagai 
berikut, System.out.println() atau System.out.print() 
Contoh variabel : 
a. public class ContohVariabel1 
{ 
public static void main(String args[]) 
{ 
int a=0; // local variable 
boolean b=true; // local variable 
float c=23; // local variable 
System.out.println(a); 
System.out.println(b); 
System.out.println(c); 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 9
b. public class ContohVariabel2 
{ 
static int a; // member variable 
static boolean b; // member variable 
static float c; // member variable 
public static void main(String args[]) 
{ 
System.out.println(a); 
System.out.println(b); 
System.out.println(c); 
} 
} 
4. Teknik Konfersi Data 
Konfersi adalah cara untuk memberikan nilai suatu data dari satu tipe data ke tipe data yang lain. 
Contoh, perhatikan class berikut : 
class konversi 
{ 
public static void main(String[]args) 
{ 
int a=50; 
double b=40.5; 
String konfersi_a =String.valueOf(a); // konfersi dari integer ke string 
String konfersi_b =String.valueOf(b);//konfersi dari double ke string 
int pindah_keinteger =Integer.parseInt(konfersi_a);// konfersi dari string ke integer 
double pindah_kedouble =Double.parseDouble(konfersi_b); // konfersi dari string ke 
double 
} 
} 
Yang perlu diketahui, bahwa konfersi data dilakukan jika kita membutuhkan suatu tipe data yang sama 
untuk menjalankan sebuah proses, jika data tersebut sudah sama tipe datanya maka tidak perlu dilakukan 
proses konfersi data. 
Untuk konfersi data harus memenuhi dua criteria berikut ini : 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 10
1. Dua tipe data yang kompatibel 
2. tipe data awal lebih kecil dibandingkan dengan tipe data tujuan. 
Jika dua syarat tersebut tidak terpenuhi maka bisa dilakukan teknik casting, yaitu melakukan perubahan 
tipe data dengan cara dipaksa. Casting ini bisa langsung dilakukan otomotis oleh java dengan cara 
menambahkan tipe data cating dikurung kemudian dilanjutkan dengan proses yang mau dijalankan, 
contoh : int a=4; int b=5; double c=(double)a/b; 
5. Operator 
Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi, operator logika, dan 
operator kondisi. Operator ini mengikuti bermacam-macam prioritas yang pasti sehingga compilernya 
akan tahu yang mana operator untuk dijalankan lebih dulu dalam kasus beberapa operator yang 
dipakai bersama-sama dalam satu pernyataan. 
5.1 Operator Aritmatika 
perator aritmatika merupakan operator yang berhubungan dengan fungsi matematika. 
contoh Nama Hasil 
a + b Penjumlahan Jumlah dari $a dan $b 
a - b Pengurangan Selisih dari $a dan $b 
a * b Perkalian Hasil kali dari $a dan $b 
a / b Pembagian Pembagian dari $a dan $b 
a % b Modulus Sisa dari $a dibagi dengan $b 
Penulisan Ekspresi Aritmatika 
= (a+b)/(a-b)-p*q 
= (a+b/p)/(a*b)-q 
pq 
+ 
a b − 
− 
a b p + − 
Contoh Operator Aritmatika : 
public class OperasiAritmatika 
{ 
public static void main(String args[]) 
{ 
short x = 6; 
int y = 4; 
float a = 12.5f; 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 11 
a b 
q 
ab
float b = 7f; 
System.out.println(x= + x + , y = +y); 
System.out.println(x + y =+ (x + y)); 
System.out.println(x - y =+ (x - y)); 
System.out.println(x / y =+ (x / y)); 
System.out.println(x % y =+ (x % y)); 
System.out.println(a = + a + , b = +b); 
System.out.println(a / b =+ (a / b)); 
System.out.println(x / b =+ (x / b)); 
System.out.println(b / x =+ (b / x)); 
} 
} 
5.2 Operator Relasi 
Operator Relasi membandingkan dua nilai dan menentukan keterhubungan diantara nilai-nilai 
tersebut. Hasil keluarannya berupa nilai boolean yaitu true atau false. 
contoh Nama Hasil 
a == b sama dengan benar jikaa sama dengan b 
a != b tidak sama benar jika a tidak sama dengan b 
a  b lebih kecil benar jika a lebih kecil b 
a  b lebih besar benar jika a lebih besar b 
a = b lebih kecil atau 
sama dengan 
benar jika a lebih kecil atau sama dengan b 
a = b lebih besar atau 
sama dengan 
benar jikaa lebih besar atau sama dengan b 
Contoh Operator Relasi : 
public class operator { 
public static void main(String args[]) 
{ 
int a = 4; 
int b = 3; 
System.out.println(a==b); 
System.out.println(a!=b); 
System.out.println(ab); 
System.out.println(ab); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 12
System.out.println(a=b); 
System.out.println(a=b); 
} 
} 
5.3 Operator Tambahan dan Pengurangan 
Tabel operator Increment/decrement adalah : 
Operator Operasi Contoh 
++a Pre-increment Nilai a ditambah satu, kemudian operasi 
berjalan 
a++ Post-increment Operasi dilaksananakan, kemudian a 
ditambah satu 
--a Pre-decrement Nilai a dikurang satu, kemudian operasi 
dilaksanakan satu 
a-- Post-decrement Operasi dilaksanakan, kemudian a 
dikurangi satu 
Contoh Operator Tambahan dan Pengurangan : 
public class IncrementDecrement 
{ 
public static void main(String args[]) 
{ 
int i = 1; 
System.out.println(i :  + i ); 
// Pre-increment 
System.out.println(++i :  + ++i ); 
// Post-increment 
System.out.println(i++ :  + i++ ); 
System.out.println(i :  + i ); 
// Pre-decrement 
System.out.println(--i :  + --i ); 
// Post-decrement 
System.out.println(i-- :  + i-- ); 
System.out.println(i :  + i ); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 13 
} 
}
5.4 Operator Logika 
Operator logika memiliki satu atau lebih operand boolean yang menghasilkan nilai boolean. Terdapat 
enam operator logika yaitu:  (logika AND),  (boolean logika AND), || (logika OR), | (boolean 
logika inclusive OR), ^ (boolean logika exclusive OR), dan ! (logika NOT). 
contoh Nama Hasil 
a b AND benar jika a dan b benar 
a || b OR benar jika a atau b benar 
a ^b XOR benar jika a atau b benar tetapi tidak keduanya 
Contoh Operator Logika: 
public class operator { 
public static void main(String args[]) 
{ 
System.out.println(ab); 
System.out.println(a||b); 
System.out.println(a^b); 
System.out.println(ab); 
System.out.println(a|b); 
System.out.println(a!=b); 
} 
} 
Operator Perbandingan/Kondisi 
Operator perbandingan ini digunakan pada struktur kontrol program, seperti if, elseif, di mana dilakukan 
perbandingan antar dua nilai. 
contoh Nama Hasil 
a == b sama dengan benar jikaa sama dengan b 
a != b tidak sama benar jika a tidak sama dengan b 
a  b lebih kecil benar jika a lebih kecil b 
a  b lebih besar benar jika a lebih besar b 
a = b lebih kecil atau 
sama dengan 
benar jika a lebih kecil atau sama dengan b 
a = b lebih besar atau 
sama dengan 
benar jika a lebih besar atau sama dengan b 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 14
MODUL 3 
INPUT DARI KEYBOARD DAN STRUKTUR KONTROL 
A. Target Praktikum 
- Membuat program Java yang interaktif yang bisa mendapatkan input dari keyboard 
- Menggunakan class BufferedReader untuk mendapatkan input dari keyboard melalui layar console 
- Menggunakan class JOptionPane untuk mendapatkan input dari keyboard menggunakan GUI 
- Menggunakan struktur kontrol pemilihan (if, else, switch) yang digunakan untuk memilih blok 
kode yang akan dieksekusi 
B. Materi Dasar 
Setelah kita mempelajari konsep dasar pada Java dan menulis beberapa program sederhana. 
Sekarang kita akan mencoba membuat program kita lebih interaktif dengan menggunakan input dari 
keyboard. Pada bab ini, kita akan mempelajari dua cara memberikan input, yang pertama adalah 
menggunakan class BufferedReader dan melalui GUI (Graphical User Interface) dengan menggunakan 
class JOptionPane 
1. Menggunakan BufferedReader 
Pada bagian ini, kita akan menggunakan class BufferedReader yang berada di package java.io untuk 
mendapatkan input dari keyboard. 
Berikut ini adalah langkah-langkah yang diperlukan untuk mendapatkan input dari keyboard: 
1. Tambahkan library tambahan di bagian paling atas code Anda: 
import java.io.*; 
2. Tambahkan statement berikut: 
BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) ); 
3. Deklarasikan variabel String temporary untuk mendapatkan input, dan gunakan fungsi 
readLine() untuk mendapatkan input dari keyboard. Anda harus mengetikkannya di dalam 
blok try-catch: 
try { 
String temp = dataIn.readLine(); } 
catch( IOException e ){ 
System.out.println(“Error in getting input”); } 
Berikut ini adalah contoh source code lengkapnya: 
import java.io.BufferedReader; 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 15
import java.io.InputStreamReader; 
import java.io.IOException; 
public class GetInputFromKeyboard 
{ 
public static void main( String[] args ){ 
BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) ); 
String name = ; 
System.out.print(Silahkan Masukkan Nama Anda:); 
try{ 
name = dataIn.readLine(); 
}catch( IOException e ){ 
System.out.println(Error!); 
} 
System.out.println(Hallo  + name +Anda Berhasil Membuatnya!!); 
} 
} 
Berikutnya akan penjelasan setiap baris dari code tersebut: 
- Statement, 
import java.io.BufferedReader; 
import java.io.InputStreamReader; 
import java.io.IOException; 
menjelaskan bahwa kita akan menggunakan class BufferedReader, InputStreamReader dan 
IOException yang berada di java.io package. Java Application Programming Interface (API) 
berisi ratusan class yang sudah didefinisikan sebelumnya yang dapat digunakan untuk program 
Anda. Class-class tersebut dikumpulkan di dalam packages. 
- blok di bawah ini merupakan try-catch block, 
try{ 
name = dataIn.readLine(); 
}catch( IOException e ){ 
System.out.println(Error!); 
} 
Pada baris ini menjelaskan bahwa kemungkinan terjadi error pada pernyataan, 
name = dataIn.readLine(); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 16
akan ditangkap. Kita akan membahas tentang penanganan exception pada bab selanjutnya dari 
pembahasan ini, tetapi untuk sekarang, Anda cukup mencatat bahwa Anda perlu menambahkan 
kode ini untuk menggunakan method readLine() dari BufferedReader untuk mendapatkan input 
dari user. 
- pernyataan, 
name = dataIn.readLine(); 
method diatas memanggil dataIn.readLine(), mendapatkan input dari user dan memberikan 
sebuah nilai String. Nilai ini akan disimpan ke dalam variabel name, yang akan kita gunakan pada 
statement akhir untuk menyambut user, 
System.out.println(Hello  + name + !); 
2. JOptionPane 
Cara selanjutnya untuk mendapatkan input dari user adalah dengan menggunakan class 
JoptionPane yang didapatkan dari javax.swing package. JoptionPane memudahkan memunculkan 
dialog box standard yang memberikan kepada user sebuah nilai atau menginformasikan sesuatu. 
Berikut Contoh Kode yang digunakan : 
import javax.swing.JOptionPane; 
public class GetInputFromKeyboard2 { 
public static void main( String[] args ) 
{ 
String name = ; 
name = JoptionPane.showInputDialog(Please enter your name); 
String msg = Hello  + name + !; 
JOptionPane.showMessageDialog(null, msg); 
} 
} 
Berikut penjelasannya 
- Statement pertama, 
import javax.swing.JOptionPane; 
Menjelaskan bahwa kita mengimpor class JoptionPane dari package javax.swing. 
Bisa juga ditulis seperti, 
import javax.swing.*; 
- Pernyataan, 
name = JOptionPane.showInputDialog(Please enter your name); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 17
membuat sebuah input dialog JOptionPane, yang akan menampilkan dialog dengan 
sebuah pesan, sebuah textfield dan tombol OK seperti pada gambar. Hasil dari dialog 
tersebut adalah String dan disimpan ke dalam variabel name. Sekarang kita membuat pesan selamat 
datang, yang akan disimpan ke dalam variabe msg, 
String msg = Hello  + name + !; 
Baris selanjutnya adalah menampilkan sebuah dialog yang berisi sebuah pesan dan 
tombol OK, 
JOptionPane.showMessageDialog(null, msg); 
3. Struktur Kontrol 
Pada bagian ini, kita akan mempelajari tentang struktur kontrol dimana kita dapat mengubah 
cara eksekusi pada pernyataan yang dibuat di program kita. 
Struktur kontrol adalah pernyataan dari Java yang mengijinkan user untuk memilih dan 
mengeksekusi blok kode spesifik dan mengabaikan blok kode yang lain. 
3.1 Statement if 
Pernyataan if akan menentukan sebuah pernyataan (atau blok kode) yang akan eksekusi jika dan hanya 
jika persyaratan bernilai benar(true). 
Contoh Program Dengan Statement If : 
public class Logika_if { 
public static void main (String args[]){ 
int targetnilai=60; 
boolean lulus=false; 
int nilaianda=70; 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 18
if (nilaianda  targetnilai){ 
lulus = true; 
} 
System.out.println(Status kelulusan :+lulus); 
} 
} 
3.2 Statement if-else 
Pernyataan if-else digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi 
true dan pernyataan yang lain dengan kondisi false. 
Contoh Program Dengan Statement If Else: 
public class Statement_If_Else { 
public static void main (String args[]) { 
int targetnilai=60; 
String hadiah=; 
int nilaianda=50; 
if (nilaianda  targetnilai){ 
hadiah = ponsel; 
} else{ 
hadiah = radio FM; 
System.out.println(Jenis hadiah :+hadiah); 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 19 
} 
}
3.3 Statement if-else-if 
Pernyataan pada bagian kondisi else dari blok if-else dapat menjadi struktur if-else yang lain. 
Kondisi struktur seperti ini mengijinkan kita untuk membuat seleksi 
persyaratan yang lebih kompleks. 
Bentuk statement if-else if, 
if( boolean_expression1 ) 
statement1; 
else if( boolean_expression2 ) 
statement2; 
else statement3 
Contoh Program Dengan Ststement If Else If : 
import javax.swing.*; 
public class Statement_If_Else_if { 
public static void main(String args[]) { 
String input=JOptionPane.showInputDialog(Nilai anda ?); 
int nilai=Integer.parseInt(input); String grade= ; 
if(nilai85){ 
grade=A; 
}else if(nilai75){ 
grade=B; 
}else{ 
grade=E; 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 20
} 
System.out.println(Nilai Anda : +nilai); 
System.out.println(Grade Anda : +grade); 
System.exit(0); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 21 
} 
} 
3.4 Statement switch 
Cara lain untuk membuat cabang adalah dengan menggunakan kata kunci switch. Switch 
mengkonstruksikan cabang untuk beberapa kondisi dari nilai. 
Bentuk statement switch, 
switch( switch_expression ) 
{ 
case case_selector1: statement1; 
break; 
case case_selector2: statement2; 
break; 
default: statement3; 
break; 
} 
switch_expression adalah ekspresi integer atau karakter dan case_selector1, case_selector2 dan 
seterusnya adalah konstanta unik dari nilai integer atau karakter.
Contoh Program Dengan Ststement Switch Case: 
import javax.swing.*; 
public class AlurSwitch { 
public static void main(String args[]) { 
String pilihan=JOptionPane.showInputDialog(Menu :n1. Sate Kambingn2. 
Gulen3. Sop Kaki Kambingn4. Tongseng); 
int menu=Integer.parseInt(pilihan); 
switch(menu) 
{ 
case 1: System.out.println(pilih sate kambing); 
break; 
case 2: System.out.println(pilih gule); 
break; 
case 3: System.out.println(pilih sop kaki kambing); 
break; 
case 4: System.out.println(pilih tongseng); 
break; 
default: System.out.println(Maaf, menu tidak ada); 
break; 
} System.exit(0); 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 22
MODUL 4 
PERULANGAN/LOOPING 
A. Target Praktikum 
- Mahasiswa mengetahui struktur dasar statement perulangan(looping) 
- Mahasiswa mengetahui cara pengoperasian statement perulangan 
- Mahasiswa mampu menyelesaikan permasalahan terkait penggunaan statement perulangan 
B. Materi Dasar 
pengulangan adalah berupa pernyataan dari Java yang mengijinkan kita untuk mengeksekusi blok code 
berulang-ulang sesuai dengan jumlah tertentu yang diinginkan. Ada tiga macam jenis dari 
struktur pengulangan yaitu while, do-while, dan for-loops. 
1. while loop 
Pernyataan while loop adalah pernyataan atau blok pernyataan yang diulang-ulang sampai mencapai 
kondisi yang cocok. 
Bentuk pernyataan while, 
while( boolean_expression ) 
{ 
statement1; 
statement2; 
} 
Pernyataan di dalam while loop akan dieksekusi berulang-ulang selama kondisi boolean_expression 
bernilai benar (true). Contoh, pada kode dibawah ini, 
public class contoh_while { 
public static void main(String args[]) { 
int i = 4; 
while( i  0 ){ 
System.out.print(i); 
i--; 
} 
} } 
Contoh diatas akan mencetak angka 4321 pada layar. 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 23
2. do-while loop 
Do-while loop mirip dengan while-loop. Pernyataan di dalam do-while loop 
akan dieksekusi beberapa kali selama kondisi bernilai benar(true). 
Perbedaan antara while dan do-while loop adalah dimana pernyataan di dalam do-while loop akan 
dieksekusi sedikitnya satu kali. 
Perbedaan antara while dan do-while loop adalah dimana pernyataan di dalam do-while loop akan 
dieksekusi sedikitnya satu kali. 
Bentuk pernyataan do-while, 
do{ 
statement1; 
statement2; 
}while( boolean_expression ); 
Pernyataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi kondisi dari 
boolean_expression. Jika nilai pada boolean_expression tersebut bernilai true, pernyataan di dalam do-while 
loop akan dieksekusi lagi. 
Berikut ini beberapa contoh do-while loop: 
Contoh 1: 
public class contoh_while { 
public static void main(String args[]) { 
int i = 4; 
do{ 
System.out.print(i); 
i--; 
}while( i  0 );} 
} 
Contoh ini akan memberikan output 4321 pada layar. 
3. for loop 
Pernyataan for loop memiliki kondisi hampir mirip seperti struktur pengulangan sebelumnya 
yaitu melakukan pengulangan untuk mengeksekusi kode yang sama sebanyak jumlah yang telah 
ditentukan. 
Bentuk dari for loop, 
for (InitializationExpression; LoopCondition; StepExpression){ 
statement1; 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 24
statement2; 
} 
- InitializationExpression – inisialisasi dari variabel loop. 
- LoopCondition - membandingkan variabel loop pada nilai batas tertentu 
- StepExpression - melakukan update pada variabel loop. 
Berikut ini adalah contoh dari for loop, 
public class cthfor { 
public static void main(String args[]){ 
for(int i=4;i=0;i--) 
{ 
System.out.print(i); 
} 
} 
} 
Pada contoh ini, pernyataan i=4 merupakan inisialisasi dari variabel. Selanjutnya, kondisi 
i=0 diperiksa. Jika kondisi bernilai true, pernyataan di dalam for loop dieksekusi. 
Kemudian, ekspresi i-- dieksekusi, lalu akan kembali pada bagian pemeriksaan terhadap kondisi 
i=0 lagi. Kondisi ini akan dilakukan berulang-ulang sampai mencapai nilai yang salah (false). 
4. Percabangan dalam Perulangan 
Pernyataan percabangan mengijinkan kita untuk mengatur aliran eksekusi program. Java 
memberikan tiga bentuk pernyataan percabangan: break, continue dan return. 
4.2 Pernyataan break 
Pernyataan break memiliki dua bentuk: tidak berlabel (unlabeled) dan berlabel (labeled). 
4.2.1 Pernyataan break tidak berlabel 
Pernyataan break tidak berlabel (unlabeled) digunakan untuk menghentikan jalannya pernyataan 
switch. Selain itu pernyataan break unlabeled juga bisa digunakan untuk menghentikan pernyataan-pernyataan 
for, while atau do-while loop. 
for( int i=0; i 5; i++ ){ 
if( i==3){ 
System.out.println(i); 
break; 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 25 
}
Dari pernyataan diatas didapatka jika i berposisi pada nilai maka perulangan akan dihentikan. Dan akan 
melakukan pencetakan angka i, yaitu angka 3. 
4.2.2 Pernyataan break berlabel 
Bentuk label dari pernyataan break akan menghentikan pernyataan di luarnya, dimana 
sebelumnya harus diberikan label yang sudah di spesifikasikan pada program pada pernyataan 
break. Ketika sebuah nilai ditemukan, break akan menghentikan pernyataan yang diberi label 
searchLabel yang terletak di luar pernyataan for loop. 
searchLabel: 
for( int i=0; i6; i++ ) 
{ 
if(i==5 ) 
{ 
System.out.println(i); 
break searchLabel; 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 26 
} 
Pernyataan break menghentikan pernyataan yang diberi label; dan tidak menjalankan 
aliran kontrol apapun pada label. Aliran kontrol pada label akan diberikan secara otomatis 
pada pernyataan yang terletak dibawah label. Jadi jika pernyataan yang tidak dibawahnya maka tidak 
akan mengenali label yang telah dituliskan. 
4.3 Pernyataan Continue 
Pernyataan continue memiliki dua bentuk: berlabel dan tidak berlabel. Anda dapat menggunakan 
pernyataan continue untuk melanjutkan pengulangan yang sedang dijalankan oleh pernyataan for, 
while, atau do- while loop. 
4.3.1 Pernyataan continue tidak berlabel 
Bentuk pernyataan continue tidak berlabel (unlabeled) akan melewati bagian pernyataan setelah 
pernyataan ini dituliskan dan memeriksa eksepresi logika (boolean) yang mengkontrol 
pengulangan. Jika ekspresi logika (boolean) masih bernilai true, maka pengulangan tetap dilanjutkan. 
Pada dasarnya pernyataan ini akan melanjutkan bagian pengulangan pada pernyataan loop. 
for( int i=0; i6; i++ ){ 
if(i==3 ){
continue; 
} 
System.out.println(i); 
} 
4.3.2 Pernyataan continue berlabel 
Bentuk pernyataan continue berlabel (labeled) akan melanjutkan pengulangan yang sedang terjadi 
dan dilanjuti ke pengulangan berikutnya dari pernyataan pengulangan yang diberi label (tanda). 
search: 
for( int i=0; i6; i++ ) { 
if(i==3 ){ 
continue search; 
} 
System.out.println(i); 
public class nested{ 
public static void main(String[]args){ 
for(int i=0;i4;i++){ 
for(int j=0;j5;j++){ 
System.out.print(j); 
} 
System.out.println(); 
} 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 27 
} 
4.4 Pernyataan Return 
Pernyataan return digunakan untuk keluar dari sebuah method. Pernyataan return memiliki dua 
bentuk: memberikan sebuah nilai, dan tidak memberikan nilai. 
Untuk memberikan sebuah nilai, cukup berikan nilai (atau ekspresi yang menghasilkan sebuah nilai) 
sesudah kata return. Contohnya, 
return ++count; atau return Hello; 
Tipe data dari nilai yang diberikan harus sama dengan tipe dari method yang dibuat. 
Ketika sebuah method void dideklariskan, gunakan bentuk return yang tidak memberikan nilai. 
Contohnya, return; 
4.5 Nested Loop 
Nested Loop adalah suatu bentuk perulangan didalam perulangan,Perhatikan contoh berikut ini untuk 
memahaminya :
MODUL 5 
ARRAY/LARIK (1 Dimensi) dan (Multidimensi) 
A. Target Praktikum 
- Mahasiswa mengetahui struktur dasar Array 
- Mahasiswa mengetahui cara pengoperasian Array 
- Mahasiswa mampu menyelesaikan permasalahan terkait penggunaan Array 
B. Materi Dasar 
Dalam bab ini, kita akan mendiskusikan mengenai array dalam Java. Pertama, kita akan 
mendefinisikan apa yang dimaksud dengan array, kemudian kita juga akan mendiskusikan 
bagaimana mendeklarasikannya dan menggunakannya dalam Java. 
Array adalah suatu type data yang mampu diisi dengan lebih dari satu nilai. Dan untuk pengaksesan 
nilai pada array ini digunakan indeks atau berdasarkan letak nilai tersebut pada array. Yang harus anda 
perhatikan adalah bahwa data yang berada dalam suatu array mempunyai tipe yang sama. 
B.1 Array satu dimensi 
Yaitu array yang hanya mempunyai 1 baris yang didalamnya terdapat data yang mempunyai type sama. 
Atau dapat diartikan sejumlah data yang ditampung oleh suatu variable yang mempunyai type yang sama 
dalam satu baris dan satu kolom. 
1. Pendeklarasian Array 
Array harus dideklarasikan seperti layaknya sebuah variabel. Pada saat mendeklarasikan array, anda 
harus membuat sebuah daftar dari tipe data, yang diikuti oleh sepasang tanda kurung [], lalu diikuti oleh 
nama identifier-nya. Sebagai contoh, 
int []usia; 
atau Anda dapat menempatkan sepasang tanda kurung [] sesudah nama identifier. Sebagai contoh, 
int usia[]; 
Setelah pendeklarasian array , kita harus membuat array dan menentukan berapa panjangnya 
dengan sebuah konstruktor. Proses ini di Java disebut sebagai instantiation (istilah 
dalam Java yang berarti membuat) 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 28
Sebagai catatan bahwa ukuran dari array tidak dapat diubah setelah anda menginisialisasinya. 
Sebagai contoh, 
int ages[]; //deklarasi 
ages = new int[100]; //instantiate obyek 
Selain menggunakan sebuah pernyataan new untuk meng-instantiate array, Anda juga 
dapat mendeklarasikan, membangun, kemudian memberikan sebuah nilai pada array sekaligus dalam 
sebuah pernyataan. 
Sebagai contoh, 
boolean results[] ={ true, false, true, false }; 
double []grades = {100, 90, 80, 75}; 
String days[] = { “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”, “Sun”}; 
2. Pengaksesan elemen array 
Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari array, Anda 
harus menggunakan indeks atau subscript. 
“ Nilai indeks selalu dalam tipe integer, dimulai dari angk a nol dan dilanjutkan ke angka 
berikutnya sampai akhir array. Sebagai catatan bahwa indeks didalam array dimulai dari 0 
sampai dengan (ukuranArray-1).” 
Berikut ini adalah contoh kode untuk mencetak seluruh elemen didalam array. Dalam 
contoh ini digunakanlah pernyataan for loop, sehingga kode kita menjadi lebih pendek. 
public class ArraySample 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 29 
{ 
public static void main( String[] args ) 
{ 
int[] ages = new int[100]; 
for( int i=0; i100; i++ ) 
{ 
System.out.print( ages[i] ); 
} 
} 
}
3. Panjang Array 
Untuk mengetahui berapa banyak elemen didalam sebuah array, Anda dapat menggunakan atribut 
length dari array. Atribut ini akan mengembalikan ukuran dari array itu sendiri. Sebagai contoh, 
NamaArray.length 
Pada contoh sebelumnya, kita dapat menuliskannya kembali seperti berikut ini, 
public class ArraySample 
{ 
public static void main( String[] args ) 
{ 
int[] ages = new int[100]; 
for( int i=0; iages.length; i++ ) 
{ 
System.out.print( ages[i] ); 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 30 
} 
} 
B.2 Array Multidimensi 
Array multidimensi diimplementasikan sebagai array yang terletak di dalam array. Array 
multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. Sebagai 
contoh, 
// Elemen 512 x 128 dari integer array 
int[][] twoD = new int[512][128]; 
// karakter array 8 x 16 x 24 
char[][][] threeD = new char[8][16][24]; 
// String array 4 baris x 2 kolom 
String[][] dogs = {{ terry, brown }, { Kristin, white }, { toby, gray}, { fido, 
black} }; 
Untuk mengakses sebuah elemen didalam array multidimensi, sama saja dengan mengakses array satu 
dimensi. Misalnya saja, untuk mengakses element pertama dari baris pertama didalam array dogs, kita 
akan menulis, 
System.out.print( c[0][0] );
Kode diatas akan mencetak String “terry” di layar 
Contoh : 
public class contoh2d 
{ 
int[][] A={{3,7,5},{2,8,6}}; 
public void cetak() 
{ 
System.out.println( Matrik A: ); 
for(int i=0;iA.length;i++) 
{ 
for(int j=0;jA[0].length;j++) 
{ 
System.out.print(A[i][j]+ ); 
} 
System.out.println(); 
} 
} 
public static void main(String args[]) 
{ 
contoh2d jm=new contoh2d(); 
jm.cetak(); 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 31
MODUL 6 
PERULANGAN LANJUTAN ( ALGORITMA SORTING ) 
A. Target Praktikum 
- Mahasiswa mampu menguasai berbagai macam algoritma sorting yaitu insertion sort, 
selection sort, buble sort. 
- Mampu mengimplementasikan berbagai macam algoritma sorting. 
B. Materi Dasar 
1. Algoritma Sorting 
Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses tersebut 
terimplementasi dalam bermacam aplikasi. Pengaplikasian sorting banyak kita jumpai diberbagai 
aktifitas, missal mengurutkan NIM, Nama negara, Kota dan Lain sebagainya 
Ada beberapa macam algoritma sorting yang nantinya akan kita pelajari dalam praktikum ini misalnya : 
- Insertion Sort 
- Selection sort 
- Buble Sort 
Penjelasan mengenai keempat algoritma sorting bisa anda baca dibawah ini: 
1.1 Insertion Sort 
Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, 
mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya 
dengan elemen data yang telah diurutkan. 
Cara pengurutan dalam Insertion Sort: 
a. Membandingkan dua elemen data pertama dan mengurutkannya. 
b. Mengambil satu elemen data berikutnya dan membandingkannya dengan dua elemen data 
pertama yang telah terurut, kemudian mengurutkannya. Elemen data ketiga ini bisa diletakkan 
sebelum elemen data pertama, setelah elemen data kedua, atau disisipkan diantara elemen data 
pertama dan kedua. 
c. Mengulang langkah kedua hingga seluruh elemen data dalam daftar sudah diurutkan. 
Perhatikan contoh kode berikut ini : 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 32
public class insertion 
{ 
public static void main(String args[]) 
{ 
int a[]={8,5,9,6,3,4,2,1,7,5}; 
for(int i=0;ia.length;i++) 
{ 
int min=a[i]; 
int j=i; 
while((j0)(mina[j-1])) 
{ 
a[j]=a[j-1]; 
j--; 
} 
a[j]=min; 
} 
// mencetak hasil 
for(int h=0;ha.length;h++) 
{ 
System.out.println(a[h]+,); 
} 
} 
} 
1.2 Selection Sort 
Algoritma sorting dengan selection sort merupakan pengurutan dengan cara mencari nilai terbesar atau 
terkecil dari sekumpulan nilai pada sebuah data. 
Pengururutan ini mempunyai jalan sebagai berikut : 
a. Mencari nilai max atau min (opsional, pilih salah satu) pada semua elemen array dan pertukarkan 
dengan elemen array yang seharusnya (min di pertama atau max di akhir) . kemudian elemen 
array tersebut di isolasi (tidak diganggu gugat). 
b. Temukan elemen array bernilai min/max dari array index kedua dari awal jika minimum atau 
kedua dari akhir jika maksimum, kemudian pertukarkan dengan elemen array di posisi (indeks) 
kedua (dari awal atau dari akhir tergantung penggunaan maksimum atau minimum). Lalu 
isolasi elemen array tersebut ditambah elemen sebelumnya. 
c. Ulangi langkah di atas untuk elemen berikutnya hingga elemen terakhir. 
Perhatikan contoh kode berikut ini : 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 33
public class selection { 
public static void main(String args[]) { 
int a[]={8,5,9,6,3,4,2,1,7,5}; 
int i=0; 
while(ia.length-1){ 
int tmp=i; 
for(int j=i+1;ja.length;j++){ 
if(a[j]a[tmp]) 
tmp=j; 
} 
int hlp=a[i]; 
a[i]=a[tmp]; 
a[tmp]=hlp; 
i++; 
} 
// mencetak hasil 
for(int h=0;ha.length;h++){ 
System.out.println(a[h]+,); 
} 
} 
} 
1.2 Bubble Sort 
Bubble sort merupakan metode yang memiliki proses pengurutan yang diawali dengan membandingkan 
elemen pertama guna memperoleh elemen terbesar. Kemudian elemen tersebut ditempatkan pada posisi 
terakhir. 
Berikut ini urutan dalam Bubble Sort : 
a. Lakukan pengulangan (pass) pada array, kemudian tukar elemen yang bersebelahan jika 
diperlukan (perbandingan nilainya tidak sesuai); jika tidak ada pertukaran nilai maka array 
sudah terurut. 
b. . Dalam pass pertama, temukan elemen dengan nilai tertinggi (maksimal) dalam array dan 
tukarkan dengan elemen di sebelah kanannya dan seterusnya sampai dengan mencapai posisinya 
di ujung array sebelah kanan. 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 34
c. Kemudian dalam pass kedua, nilai tertinggi kedua dalam array akan ditempatkan dalam 
posisinya (di sebelah kiri elemen dengan nilai tertinggi/maksimal). 
d. Teruskan untuk pass ketiga dan seterusnya sampai pass n-1 
e. Jika sebelum pass n-1 sudah tidak ada pertukaran data maka pertukaran langsung dihentikan. 
Perhatikan Kode Berikut : 
public class bubble 
{ 
public static void main(String args[]) 
{ 
int a[]={8,5,9,6,3,4,2,1,7,5}; 
for(int i=1;ia.length;i++) 
{ 
for(int h=0;ha.length-1;h++) 
{ 
if(a[h+1]a[h]) 
{ 
int tmp=a[h+1]; 
a[h+1]=a[h]; 
a[h]=tmp; 
} 
} 
} 
// mencetak hasil 
for(int h=0;ha.length;h++) 
{ 
System.out.println(a[h]+,); 
} 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 35
MODUL 7 
EXCEPTION HANDLING DAN METHOD 
A. Target Praktikum 
- Mendefinisikan exception 
- Menangani exception menggunakan blok try-catch-finally 
- Memahami Tentang Method dan penggunaannya didalam pemrograman 
- Mampu mengaplikasikan method dalam pembuatan program. 
B. Materi Dasar 
1. ExceptionHandling 
Dalam bagian ini, kita akan mempelajari teknik yang dipakai dalam Java dalam menangani kondisi yang 
tidak bisaa dalam menjalankan operasi normal dalam program. Teknik ini dinamakan exception 
handling. 
- Event yang terjadi ketika suatu kesalahan terjadi saat program dijalankan. 
- Sering digunakan untuk akses sumberdaya non memori seperti akses file dan koneksi database 
1.1 Apa itu Exception? 
Exception adalah sebuah peristiwa yang menjalankan alur proses normal pada program. Peristiwa ini 
bisaanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program kita berakhir tidak 
normal. 
1.2 Menangani Exception 
Untuk menangani exception dalam Java, kita gunakan blok try-catch-finally. Apa yang kita 
lakukan dalam program kita adalah kita menempatkan pernyataan yang mungkin menghasilkan exception 
dalam blok ini. 
Bentuk umum dari blok try-catch-finally adalah, 
Try 
{ 
//tulis pernyataan yang dapat mengakibatkan exception 
//dalam blok ini 
} 
catch( exceptionType1 varName1 ) 
{ 
//tulis aksi apa dari program Anda yang dijalankan jika ada 
//exception tipe tertentu terjadi 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 36
} 
catch( exceptionTypen varNamen ){ 
//tulis aksi apa dari program Anda yang dijalankan jika ada 
//exception tipe tertentu terjadi 
} 
finally{ 
//tambahkan kode terakhir di sini 
} 
Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch. 
Kode dalam blok finally selalu di-eksekusi. 
Berikut ini adalah aspek kunci tentang sintak dari konstruksi try-catch-finally: 
- Notasi blok bersifat perintah 
- Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok finally. 
- Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan blok try, dan diatas urutan 
- Blok try harus diikuti oleh paling sedikit satu blok catch ATAU satu blok finally, atau 
keduanya. 
- Setiap blok catch mendefinisikan sebuah penanganan exception. Header dari blok catch harus 
membawa satu argumen, dimana exception pada blok tersebut akan ditangani. 
1.3 Contoh Exception 
a. ArithmeticException 
public class cobaException 
{ 
public static void main(String args[]) 
{ 
int bil = 10; 
System.out.println(bil/0); 
} 
} 
Program diatas akan memunculkan outpur error sebagai berikut : 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 37
Disana muncul adanya kesalahan aritmetika, pesan kesalahan tersebut tampil karena adanya proses 
perhitungan yang salah. karena di java secara otomatis akan menangkap exception ketika ada kode 
program yang salah. 
b. Struktur Blok Try Catch 
try{ 
kode program yang mungkin menghasilkan exception 
} 
catch(Exception xx){ 
} 
catch(Exception xx){ 
} 
Contoh Penggunaan Blok Try-Catch 
public class contoh_try 
{ 
public static void main(String args[]){ 
try{ 
int bil = 10; 
System.out.println(bil/0); 
} 
catch(Exception xx){ 
System.out.println(xx.getMessage()); 
} 
} 
} 
2. Method/Function 
2.1 Konsep Dasar 
- Fungsi adalah bagian dari kode program yang mempunyai tugas spesifik. 
- Reusable : Bisa dipanggil ke program utama atau fungsi yg lain lebih dari 1 kali bila dibutuhkan. 
- Sebuah fungsi bisaanya digunakan untuk menangani suatu proses tertentu yang ada di dalam sebuah 
program. Dan bila ada kesalahan cukup memperbaiki bagian method yang salah 
2.2 Bentuk penulisan fungsi/method 
Kita bisa menuliskan fungsi atau method dengan beberapa cara, dan method juga mempunyai beberapa 
macam tipe yaitu : void , string , double , integer 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 38
Dari beberapa tipe method diatas semua harus mempunya nilai kembalian (return typedata) kecuali 
method yang bertipe void. 
Dalam beberapa kasus kita membutuhkan suatu method yang mempunyai nilai kembalian, misalnya 
untuk penanganan proses tertentu yang membutuhkan sebuah nilai untuk digunakan proses selanjutnya, 
missal ingin menghitung bangun seperti tabung, kerucut dimana kedua bangun tersebut mengandung 
lingkaran, maka penanganan perhitungan lingkaran bisa ditangan oleh satu method dengan nilai 
kembalian, kemudian hasil perhitungan lingkaran digunakan untuk menghitung volume tabung dan 
kerucut. 
Berikut ini cara untuk menuliskan fungsi/method : 
1. method yang tidak mempunyai parameter 
void hitung() { 
// Statement atau perintah yang dikerjakan 
} 
2. method yang mempunyai parameter 
void hitung2(int a,int b) { // Method yang mempunyai parameter 
// Statement atau perintah yang dikerjakan 
} 
2.3 Contoh Aplikasi 
a. Program yang tidak menggunakan fungsi/method 
public class faktorial { 
public static void main(String args[]){ 
int nilai=1; 
int data=4; 
if(data==0||data==1){ 
nilai=1; 
} 
else{ 
for(int i=1; i=data; i++){ 
nilai*=i; 
} 
} 
System.out.println(data+ ! = +nilai); 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 39
b. Program yang menggunakan fungsi/method 
public class faktorial5 
{ 
public void test(int data){ // Fungsi atau method 
int nilai=1; 
if(data==0||data==1){ 
nilai=1; 
} 
else{ 
for(int i=1; i=data; i++){ 
nilai*=i; 
} 
} 
System.out.println(data+! = +nilai); 
} 
public static void main(String args[]){ 
faktorial5 f5=new faktorial5(); 
f5.test(4); 
f5.test(5); 
} 
} 
Dapat anda perhatikan bahwa program “a” yang tidak menggunakan fungsi, maka proses yang berjalan 
hanya sekali dan angka yang dihitung nilai faktorialnya cenderung statis. 
Berbeda dengan program “b” yang menggunaka fungsi, proses yang berjalan bisa lebih satu kali, yaitu 
kita bisa melakukan pemanggilan fungsi tersebut secara berulang dengan nilai angka yang parameter 
faktorialnya dapat diubah dengan lebih dinamis. 
2.4 Function Rekursif 
Sebuah fungsi yang menggunakan dirinya sendiri untuk mengerjakan suatu tugas. Rekursif adalah 
sebuah metodologi yang penting karena beberapa algoritma bisa diekspresikan dengan lebih baik 
menggunakan rekursif. 
Contoh : 
public class metodx 
{ 
public void tampilString(int sisa) 
{ 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 40
if(sisa0) 
{ 
System.out.println(Belajar Rekursif Java); 
tampilString(sisa-1); 
} 
} 
public static void main(String args[]) 
{ 
metodx r1=new metodx(); 
r1.tampilString(5); 
} 
} 
Contoh : Faktorial Dengan Rekursif 
public class FaktorialRekursif 
{ 
public int FaktorialRekursif(int n) 
{ 
int hasil=0; 
if(n==0) 
hasil=1; 
else 
hasil=n*FaktorialRekursif(n-1); 
return hasil; 
} 
public static void main(String args[]) 
{ 
FaktorialRekursif fr=new FaktorialRekursif(); 
int data=fr.FaktorialRekursif(5); 
System.out.println(5 ! = +data); 
} 
} 
3. Object Oriented Programing(OOP/Pemrograman Berorientasi Objek) 
Java Merupakan salah satu bahasa pemrograman yang berorientasi objek. OOP Atau Object Oriented 
Programing Adalah merupakan model pemrograman yang berorientasikan kepada objek. Semua data 
dan fungsi di dalam model pemrograman ini dibungkus dalam objek. Bandingkan dengan logika 
pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke 
objek lainnya. Model pemrograman ini merupakan model pemrograman yang mudah untuk 
dikembangkan dan di maintenance. 
Ada berbagai macam konsep yang dipakai dalam model pemrograman berbasis OOP diantaranya : 
Kelas, Objek, Abstrak, Polimorfisme, Enkapsulasi 
Dalam praktikum dasar pemrograman ini, kita akan pelajari Kelas dan Objek serta beberapa macam 
akses modifier. 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 41
3.1 Kelas 
Kelas adalah sekumpulan data dan fungi dalam satu kesatuan untuk tujuan tertentu. 
Dalam contoh misalnya ada kelas “pensil” dimana kelas pensil ini merupakan turunan dari kelas 
alat_tulis, perhatikan kode berikut : 
public class alat_tulis{ 
protected String nama; 
protected String merek; 
String nama(String nm){ 
nama=nm; 
return nama; 
} 
String merek(String mrk){ 
merek=mrk; 
return merek; 
} 
} 
public class pensil extends alat_tulis{ 
String harga; 
String harga(String hrg){ 
harga=hrg; 
return harga; 
} 
public static void main (String[]args) { 
pensil pl=new pensil(); 
pl.nama=Pensil; 
pl.merek=Standart; 
pl.harga=5000; 
System.out.println(Nama +pl.nama); 
System.out.println(Merek +pl.merek); 
System.out.println(Harga +pl.harga); 
} 
} 
Dari Kode tersebut bias anda lihat kelas pensil bias memberikan nilai pada nama, merek padahal 
didalam kelas tersebut tidak mempunyai variabel itu, hal ini dikarenakan kelas pensil tersebut 
merupakan kelas turunan dari kelas alat tulis. 
3.2 Objek 
Objek bisa kita ibaratkan sebagai pembungkus suatu fungsi,data yang ada dalam pemrograman 
berorientasi objek. Contohnya adalah setiap komponen, variabel, fungsi di dalam java selalu diwakili 
oleh sebuah objek, perhatikan kode berikut : 
Variabel : int[]angka=new int[5]  angka merupakan objek variabel 
Kelas : pensil pl =newm pensil();  pl merupakan objek kelas 
3.3 Akses Modifier 
Akses modifier merupakan hak akses yang diberikan kepada data/variabel, fungsi atau kelas dalam 
pemrograman berorientasi objek. Ada beberapa macam akses modifier yang harus anda ketahui 
diantaranya : 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 42
1. Public : Akses modifier yang mengijinkan semua kelas mengakses var,fungsi yang memliki tipe 
akses modifier ini. 
2. Private : Akses modifier yang hanya bias diakses dalam satu kelas 
3. Protected : Akses modifier yang hanya mengijinkan kelas turunan untuk mengakses var,fungsi 
yang memliki tipe akses modifier ini. 
4. Static : Bukan akses modifier, Sebuah variabel atau fungsi yang mempunyai nilai kembalian 
yang nilaix akan tetap terjaga selama tidak ada perubahan nilai dalam var, dan fungsi tersebut 
selama aplikasi berjalan. 
public class alat_tulis 
public class pensil extends alat_tulis{ 
{ 
String harga; 
static private String info=Informasi 
String harga(String hrg){ 
Alat Tulis; 
protected String nama; 
protected String merek; 
String nama(String nm){ 
nama=nm; 
return nama; 
} 
String merek(String mrk){ 
merek=mrk; 
return merek; 
} 
} 
harga=hrg; 
return harga; 
} 
public static void main (String[]args){ 
pensil pl=new pensil(); 
pl.nama(Pensil); 
pl.merek(Standart); 
pl.harga(5000); 
System.out.println(Nama +pl.info);// Menampilkan 
variabel Static 
System.out.println(Nama +pl.nama); 
System.out.println(Merek +pl.merek); 
System.out.println(Harga +pl.harga); 
} 
} 
Dari contoh diatas jika anda runnig programnya maka variabel info di kelas alat_tulis tidak dapat diakses 
oleh kelas pensil, karena variabel tersebut mempunyai akses modifier private. 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 43
MODUL 8 
DASAR GUI (Graphical User Interface) 
A. Target Praktikum 
- Memahami persamaan dan perbedaan antara AWT dan Swing 
- Perbedaan antara komponen dan kontainer. 
- Mendesain aplikasi GUI menggunakan AWT. 
- Mendesain aplikasi GUI menggunakan Swing. 
- Menjelaskan tentang flow layout, border layout, dan grid layout dalam komponen GUI 
- Membuat tampilan yang komplek dalam mendesain aplikasi GUI. 
B. Materi Dasar 
Tanpa mempelajari tentang grapichal user interface (GUI) API, Anda masih tetap bisa membuat 
suatu program. Tetapi, program Anda akan kelihatan tidak menarik dan tidak nyaman digunakan bagi 
para user. Memiliki GUI yang baik dapat memberi efek pada penggunaan aplikasi. Java menyediakan 
banyak tool seperti Abstract Windowing Toolkit dan Swing untuk mengembangkan aplikasi GUI yang 
interaktif. 
AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat aplikasi Java 
dan applet. Tidak seperti beberapa komponen AWT yang menggunakan native code, keseluruhan Swing 
ditulis menggunakan bahasa pemrograman Java. Swing menyediakan implementasi platform-independent 
dimana aplikasi yang dikembangkan dengan platform yang berbeda dapat memiliki tampilan 
yang sama. Begitu juga dengan AWT menjamin tampilan look and feel pada aplikasi yang dijalankan 
pada dua mesin yang berbeda menjadi terlihat sama. Swing API dibangun dari beberapa API yang 
mengimplementasikan beberapa jenis bagian dari AWT. Kesimpulannya, komponen AWT dapat 
digunakan bersama dengan komponen Swing. 
1. Beberapa komponen AWT 
Berikut ini adalah daftar dari kontrol AWT. Kontrol adalah komponen seperti tombol atau textfield 
yang mengijinkan user untuk berinteraksi dengan aplikasi GUI. Berikut ini semua subclass dari class 
Components. 
Berikut adalah contoh GUI dengan menggunakan fitur AWT (Abstract Windowing Toolkit): 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 44
import javax.swing.*; 
import java.awt.*; 
class cekBok extends JFrame 
{ 
Checkbox cb1 = new Checkbox(Cex Box); 
TextField txt = new TextField(Text Field); 
Button bt = new Button(Tombol/Button); 
cekBok() 
{ 
super(PROGRAM GUIKU); 
setLocation(200,100); 
setSize(400,350); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
void objek() 
{ 
getContentPane().setLayout(null); 
getContentPane().add(cb1); 
getContentPane().add(txt); 
getContentPane().add(bt); 
cb1.setBounds(30,90,150,20); 
txt.setBounds(30,120,150,20); 
bt.setBounds(30,150,150,20); 
setVisible(true); 
} 
public static void main(String args[]) 
{ 
cekBok ZZ=new cekBok(); 
ZZ.objek(); 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 45 
} 
2. Layout Manager 
Posisi dan ukuran suatu komponen ditentukan oleh layout manager. Layout manager 
mengatur tampilan dari komponen di dalam kontainer. Berikut ini beberapa layout manager
yang terdapat di dalam Java. 
1.FlowLayout 
2.BorderLayout 
3.GridLayout 
Layout manager dapat diatur men 
dapat ditulis sebagai berikut. 
setLayout(LayoutManager mgr) 
2.1 FlowLayout 
enggunakan method setLayout dari class Container 
Cara meletakkan komponen 
dan dari atas ke bawah, 
menggunakan editor kata p 
Berikut adalah contoh pengg 
import java.awt.*; 
class FlowLayoutDemo ex 
public static void main(S 
ner. Method ini 
en dari FlowLayout Manager dimulai dari kiri ke ka 
h, dimulai dari pojok kiri atas. Seperti pada 
a pada umumnya. 
nggunaan FlowLayout : 
extends Frame { 
n(String args[]) { 
d new FlowLayoutDemo(); 
lowLayout()); 
ONE)); 
TWO)); 
THREE)); 
); 
FlowLayoutDemo fld = 
fld.setLayout(new Flow 
fld.add(new Button(O 
fld.add(new Button(T 
fld.add(new Button(T 
fld.setSize(100, 100); 
fld.setVisible(true); 
} 
} 
Berikut ini tampilan yang di 
M o d u l D a s p r o - 
dihasilkan : 
kanan 
ada saat Anda mengetik 
C o p y l e f t b y : G i a n t o W i d o d o , S 
. K o m Page 46
2.2 BorderLayout 
BorderLayout membagi ko 
dan tengah. Setiap kompone 
membentuk jalur horizonta 
region tengah berada pada 
default untuk object Window 
Berikut adalah contoh pengg 
import java.awt.*; 
class BorderLayoutDemo 
public static void main(S 
kontainer menjadi lima bagian diantaranya utar 
onen dimasukkan ke dalam region yang spesifik. R 
ntal sedangkan region timur dan barat memben 
da perpotongan jalur horizontal dan vertikal. Tam 
ow, termasuk object dari subclass Window yaitu ti 
nggunaan BorderLayout : 
mo extends Frame { 
n(String args[]) { 
bld = new BorderLayoutDemo(); 
BorderLayout(10, 10)); //may remove 
(NORTH), BorderLayout.NORTH); 
(SOUTH), BorderLayout.SOUTH); 
(EAST), BorderLayout.EAST); 
(WEST), BorderLayout.WEST); 
(CENTER), BorderLayout.CENTER); 
0); 
BorderLayoutDemo bl 
bld.setLayout(new Bo 
bld.add(new Button(N 
bld.add(new Button(S 
bld.add(new Button(E 
bld.add(new Button(W 
bld.add(new Button(C 
bld.setSize(200, 200); 
bld.setVisible(true); 
} 
} 
Berikut ini tampilan yang di 
dihasilkan : 
2.3 Null Layout/Tanpa Layout 
out 
M o d u l D a s p r o - 
tara, selatan, timur, barat, 
Region utara dan selatan 
entuk jalur vertikal. Dan 
ampilan ini adalah bersifat 
u tipe Frame dan Dialog. 
C o p y l e f t b y : G i a n t o W i d o d o , S 
. K o m Page 47
Jika Anda memilih untuk tidak menggunakan layout manager, Anda dapat mengisi null sebagai 
argumen untuk method ini. Tetapi selanjutnya, Anda akan mengatur posisi elemen secara 
manual dengan menggunakan method setBounds dari class Components. 
setBounds(int x, int y, int width, int height) 
Method ini mengatur posisi berdasarkan pada argumen x dan y, dan ukuran berdasarkan 
argumen width dan height. 
Berikut adalah contoh penggunaan NullLayout : 
import javax.swing.*; 
import java.awt.*; 
class cekBok extends JFrame 
{ 
Checkbox cb1 = new Checkbox(Pilih A); 
Checkbox cb2 = new Checkbox(Pilih B”); 
Checkbox cb3 = new Checkbox(Pilih C); 
cekBok() 
{ 
super(PROGRAM GUIKU); 
setLocation(200,100); 
setSize(400,350); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
void objek() 
{ 
getContentPane().setLayout(null); 
getContentPane().add(cb1); 
getContentPane().add(cb2); 
getContentPane().add(cb3); 
cb1.setBounds(30,90,150,20); 
cb2.setBounds(30,120,150,20); 
cb3.setBounds(30,150,150,20); 
setVisible(true); 
} 
public static void main(String args[]) 
{ 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 48
cekBok ZZ=new cekBok 
ZZ.objek(); 
} 
} 
Berikut ini tampilan yang di 
3. Komponen Swing 
ok(); 
dihasilkan : 
Seperti pada package AW 
WT, package dari Swing menyediakan banyak 
but dapat ditemukan di javax.swing. Perbedaan 
itulis menyeluruh menggunakan Java. Kesimp 
class dari package Swing yang mempunyai tampil 
altform yang berbeda. Lebih dari itu, Swing menye 
oser dan option pane. 
GUI milik Swing hampir sama persis dengan kom 
ada penamaan komponen. Pada dasarnya, nama 
T tetapi dengan tambahan huruf J pada prefixnya 
alah button class. Sedangkan pada Swing, na 
adalah daftar dari komponen Swing. 
aplikasi GUI. Package tersebut 
adalah komponen Swing ditu 
ditulis menggunakan banyak cla 
sama meski dijalankan pada palt 
lebih menarik seperti color choos 
Nama dari komponen GU 
Perbedaan jelas terdapat pada 
dengan nama komponen AWT t 
komponen dalam AWT adala 
menjadi Jbutton class. Berikut ad 
M o d u l D a s p r o - 
ak class untuk membuat 
n utama antara keduanya 
impulannya, program GUI 
pilan look and feel yang 
nyediakan komponen yang 
mponen GUI milik AWT. 
a komponen Swing sama 
ya. Sebagai contoh, satu 
nama komponen tersebut 
C o p y l e f t b y : G i a n t o W i d o d o , S 
. K o m Page 49
Berikut ini contoh sederhana menggunakan komonen swing : 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class fil extends JFrame 
{ 
JTextArea nama=new JTextArea(10,10); 
JButton bt=new JButton(Copy); 
JTextArea txnama=new JTextArea(10,10); 
fil() 
{ 
super(INI ADALAH FORM); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 50
setLocation(200,300 
setSize(400,300); 
setDefaultCloseOpe 
setVisible(true); 
} 
void tampilan() 
{ 
getContentPane().a 
nama.append(nam 
getContentPane().a 
getContentPane().a 
txnama.setBackgrou 
bt.addActionListene 
{ 
public void actionPe 
00); 
peration(JFrame.EXIT_ON_CLOSE); 
).add(nama); 
ma kamu siapa); 
).add(bt); 
).add(txnama); 
round(Color.LIGHT_GRAY); 
ner(new ActionListener() 
Performed(ActionEvent e) 
{ 
txnama.append(na 
} 
}); 
getContentPane().s 
setVisible(true); 
} 
public static void ma 
fil f=new fil(); 
f.tampilan(); 
} 
} 
Output yang dihasilkan 
(nama.getSelectedText()); 
).setLayout(new FlowLayout()); 
M o d u l D a s p r o - 
ain(String args[]) { 
C o p y l e f t b y : G i a n t o W i d o d o , S 
. K o m Page 51
Perlu diperhatikan pada package java.awt masih saja diimpor karena layout manager yang 
digunakan terdapat pada package tersebut. Juga, memberi judul pada frame dan mengepack komponen 
di dalam frame dapat juga dilakukan untuk frame AWT. 
3.1 Membuat Menu Sederhana 
JMenu adalah komponen yang berupa kumpulan fungsi yang berhubungan dengan fitur-fitur yang 
terdapat pada suatu Aplikasi. 
Dibagi atas beberapa yaitu: 
1 JMenuBar adalah menu yang didalamnya yang bersifat klik down atau apabila menu 
tersebut di klik maka akan muncul pilihan menu. 
2 JMenu adalah komponen yang terdapat pada menuBar dimana ia merupakan objek yang ada 
pada menubar. 
3 JMenuItem adala menu yang berguna untuk menambah item (objek/pilihan) menu pada 
menu. 
Contoh Aplikasi Yang menggunakan menu DI dalamnya : 
import javax.swing.*; 
import java.awt.*; 
import javax.swing.table.*; 
import java.awt.event.*; 
import java.sql.*; 
class menunya extends JFrame 
{ 
JMenuBar mb=new JMenuBar(); 
JMenu mn=new JMenu(File); 
JMenu mn2=new JMenu(Open); 
JRadioButton bt=new JRadioButton(buku); 
JMenuItem mnt=new JMenuItem(Close); 
JMenuItem unta=new JMenuItem(Unta); 
menunya() 
{ 
super(PROGRAM MENGHITUNG ZAKAT); 
setLocation(200,100); 
setSize(400,350); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
void objek() 
{ 
getContentPane().add(mb,BorderLayout.NORTH); 
mb.add(mn); 
mn2.add(bt); 
mn.add(mn2); 
mn.add(mnt); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 52
mn.add(unta); 
mb.setBounds(10,10,100,30); 
setVisible(true); 
} 
public static void main(String args[]) 
{ 
menunya ZZ=new menunya(); 
ZZ.objek(); 
} 
} 
Berikut Adalah output Yang Dihasilkan : 
4. Menambahkan Atribut Warna Dan Gambar 
4.1 Menambahkan Warna 
Untuk menambahkan warna pada komponenn windows yang kita buat kita perlu menambahkan 
statement yang di dalam java di kenali sebagai penambah atribut warna. 
Contoh ; 
“ getContentPane().setBackground(Color.GREEN); “ ini untuk memberikan warna pada frame yang 
kita buat. 
“ bt.setBackground(Color.RED); “ Untuk memberikan warna pada background komponen komponen 
lain selain frame dimana bt adalah nama dari pembentukan objek yang dibuat berdasarkan komponen 
tersebut. 
“ bt.setForeground(Color.GREEN); “ Untuk memberikan warna pada tulisan yang ada pada 
komponen tersebut. 
Penambahan warna berdasarkan statement diatas hanya berlaku untuk warna sederhana. 
“ bt.setForeground(new java.awt.Color(0, 0, 153)); “ 
“ bt.setBackground(new java.awt.Color(1,9,123)); “ 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 53
Adalah untuk memberikan warna yang dapat kita sesuaikan tingkat warnanya berdasarkan warna 
R,G,B. 
Contoh Menambahkan Atribut Warna Dari Komponen Yang Telah Kita Buat : 
import java.awt.*; 
import java.awt.event.*; 
public class area extends JFrame 
{ 
JTextArea nama=new JTextArea(10,10); 
JButton bt=new JButton(Copy); 
JTextArea txnama=new JTextArea(10,10); 
area(){ 
super(INI ADALAH FORM); 
setLocation(200,300); 
setSize(400,300); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
setVisible(true); 
} 
void tampilan() { 
getContentPane().add(nama); 
nama.append(nama kamu siapa); 
getContentPane().add(bt); 
bt.setForeground(new java.awt.Color(0, 0, 153)); 
bt.setBackground(new java.awt.Color(1,9,13)); 
bt.setBackground(Color.GRAY); 
bt.setForeground(Color.GREEN); 
getContentPane().add(txnama); 
txnama.setBackground(Color.LIGHT_GRAY); 
bt.addActionListener(new ActionListener(){ 
public void actionPerformed(ActionEvent e) 
{ 
txnama.append(nama.getSelectedText()); 
} 
}); 
getContentPane().setLayout(new FlowLayout()); 
setVisible(true); 
} 
public static void main(String args[]){ 
area f=new area(); 
f.tampilan(); 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 54
4.2 Menambahkan Gambar 
Untuk menambahkan gambar pada komponen windows kita bisa menggunakan label yang 
didalamnya kita selipkan statement (“new ImageIcon(e.jpg) ”) untuk memanggil gambar 
tersebut. Syarat untuk menambahkan sebuah gambar yang ditampilkan kedalam frame, gambar 
tersebut harus berada didalam folder yang satu dengan letak source atau kelas tersebut diletakkan 
(disimpan). 
Contoh Menampilkan gambar ke dalam aplikasi kita dengan menggunakan JLabel : 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
public class gambar extends JFrame 
{ 
JLabel lb=new JLabel(new ImageIcon(e.jpg)); 
gambar(){ 
super(INI ADALAH FORM); 
setLocation(200,300); 
setSize(400,300); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
setVisible(true); 
} 
void tampilan() { 
getContentPane().add(lb); 
getContentPane().setLayout(new FlowLayout()); 
setVisible(true); 
} 
public static void main(String args[]){ 
gambar f=new gambar(); 
f.tampilan(); 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 55
MODUL 9 
EVENT HANDLING/ACTION PROGRAM 
A. Target Praktikum 
- Menerangkan komponen-komponen delegation event model 
- Mengerti bagaimana delegation event model bekerja 
- Menciptakan aplikasi GUI yang berinteraksi dengan user 
- Mendiskusikan manfaat dari class-class adapter 
- Mendiskusikan keuntungan-keuntungan dari menggunakan inner dan anonymous 
B. Materi Dasar 
Pada bab ini, Anda akan belajar bagaimana mengendalikan events triggered ketika user 
berinteraksi dengan aplikasi GUI Anda. Setelah menyelesaikan modul ini, Anda akan dapat 
mengembangkan aplikasi GUI yang dapat merespon interaksi user. 
1. Event Model 
Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi dari user. Untuk 
memahami model, pertama-tama mari kita pelajari melalui tiga komponen utamanya. 
- Event Source 
Event source mengacu pada komponen GUI yang meng-generate event. Sebagai contoh, jika 
user menekan tombol, event source dalam hal ini adalah tombol. 
- Event Listener/Handler 
Event listener menerima berita dari event-event dan proses-proses interaksi user. Ketika tombol 
ditekan, listener akan mengendalikan dengan menampilkan sebuah informasi yang berguna untuk 
user. 
- Event Object 
Ketika sebuah event terjadi (misal, ketika user berinteraksi dengan komponen GUI), sebuah object 
event diciptakan. Object berisi semua informasi yang perlu tentang event yang telah terjadi. 
Informasi meliputi tipe dari event yang telah terjadi, seperti ketika mouse telah di-klik. Ada 
beberapa class event untuk kategori yang berbeda dari user action. Sebuah event object 
mempunyai tipe data mengenai salah satu dari class ini. 
2. Event Listeners 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 56
Event listeners adalah class ya 
menunjukkan beberapa listener in 
Event Listeners Deskrip 
ActionListener Bereak 
yang mengimplementasikan interfaces TypeL 
r interfaces yang biasanya digunakan. 
kripsi Method 
aksi atas perubahan 
se atau atau keyboard. 
mouse 
MouseListener Bereak 
aksi atas pergerakan 
se. 
mouse. 
MouseMotionListener Interfac 
rface Mouse Motion 
ener mendukung 
seListener. Menyediakan 
hod-method yang akan 
antau pergerakan 
se,seperti drag dan 
indahan mouse. 
Listene 
Mouse 
method 
meman 
mouse, 
pemind 
Pada praktikum ini kita hanya ak 
aksi dari mouse ketika di klik dan 
anda kembangan sesuai dengan k 
Listener. Tabel di bawah 
rformed(ActionEvent e) 
eClicked(MouseEvent e) 
eEntered(MouseEvent e) 
eExited(MouseEvent e) 
ePressed(MouseEvent e) 
eReleased(MouseEvent e) 
seDragged(MouseEvent e) 
seMoved(MouseEvent e) 
akan membahas Event ActionListener yaitu penan 
n kreatifitas anda. 
1.1 ActionListener Pada Mouse 
Berikut contoh Aplikasi dengan a 
use 
n action listener : 
import java.awt.*; 
import java.awt.event.* 
import javax.swing.*; 
t.*; 
public class combo 
{ 
public static void main 
{ 
JFrame frame = new 
final JLabel lb=new J 
final String [] items = 
final JComboBox co 
JPanel pn=new JPa 
ain(String[] args) 
ew JFrame(); 
w JLabel(); 
s {  roti ,  Madu  }; 
comboBox = new JComboBox(items); 
anel(); 
M o d u l D a s p r o - 
public void actionPerfo 
- public void mouseC 
- public void mouseE 
- public void mouseE 
- public void mouseP 
- public void mouseR 
- public void mouseD 
- public void mouseM 
nanganan reaksi ketika ada 
vent yang lainnya silahkan 
ketika keyboard di tekan, sedangkan untuk eve 
C o p y l e f t b y : G i a n t o W i d o d o , S 
. K o m Page 57
frame.add(pn,BorderLayout.WEST); 
pn.add(comboBox,BorderLayout.CENTER); 
pn.add(lb,BorderLayout.NORTH); 
comboBox.addActionListener( new ActionListener() 
{ 
public void actionPerformed(ActionEvent ae) 
{ 
String mn=(String)comboBox.getSelectedItem(); 
lb.setText(mn); 
} 
}); 
frame.setSize(200, 200); 
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
frame.setVisible(true); 
} 
} 
1.2 ActionListener Pada Keyboard 
Berikut contoh Aplikasi dengan action listener : 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*;//Package untuk penanganan event (aksi reaksi) 
class Event_Button_Key extends JFrame 
{ 
JButton m=new JButton(TEKAN KEY 1,2,3,4); 
JLabel tulisan = new JLabel(UKURAN FRAME AKAN BERUBAH); 
Event_Button_Key() 
{ 
setTitle(INI EVENT PADA BUTTON); 
setSize(400,200); 
setLocation(200,100); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
void komponen() 
{ 
getContentPane().setLayout(new FlowLayout()); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 58
getContentPane().add(m); 
getContentPane().add(tulisan); 
setVisible(true); 
} 
void reaksi(){ 
m.addKeyListener(new KeyAdapter() { 
public void keyPressed(KeyEvent e){ 
if(e.getKeyCode()==e.VK_1){ 
setSize(300,500); 
} 
if(e.getKeyCode()==e.VK_2){ 
setSize(200,100); 
} 
if(e.getKeyCode()==e.VK_3){ 
setSize(100,10); 
} 
if(e.getKeyCode()==e.VK_4){ 
setSize(900,200); 
} 
} 
}); 
} 
public static void main(String []args){ 
Event_Button_Key eb=new Event_Button_Key(); 
eb.komponen(); 
eb.reaksi(); 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 59
MODUL 10 
PEMROGRAMAN DATABASE MENGGUNAKAN MYSQL 
A. Target Praktikum 
- Mahasiswa mengetahui struktur dasar pemrograman database. 
- Mahasiswa mengetahui cara pengoperasian simpan, edit, cari dan hapus suatu data dalam database. 
- Mahasiswa mampu menyelesaikan permasalahan menggunakan pemrograman database. 
B. Materi Dasar 
1. Data Base 
Data Base merupakan sebuah tempat untuk menyimpan data secara permanent ke dalam media 
penyimpanan / memori sekunder . 
Agar dapat terkoneksi ke MySQL diperlukannya library tambahan untuk driver JDBC. Silakan 
download library tersebut di situs web mysql.com, anda akan memperoleh file mysql-connector-java- 
5.1.8.tar. Kemudian ekstrak file tersebut. Salah satu hasil ekstraksinya adalah file mysql-connector-java- 
5.1.8-bin.jar dan inilah library driver JDBC MySQL yang dimaksud. Salin file ini ke direktori 
C:Program FilesJavajre6libext atau ke folder lain sesuai dengan lokasi instalasi JRE. 
2. JDBC (Java Database Connectivity) 
- Suatu interface pemrograman antara program aplikasi dan DBMS 
- JDBC berbentuk API 
- Menggunakan perintah SQL untuk memberi perintah ke DBMS 
2.1 JDBC API (Aplication Program Interface) 
- Terdiri dari sejumlah class dan interface yang ditulis dalam bahasa Java 
- Menyediakan API standard sebagai alat bantu bagi pembuat program 
- Memberikan kemungkinan untuk menulis aplikasi database dengan menggunakan semua 
Java API 
- Kelebihan 
1. Dapat mengakses sembarang sumber data 
Sybase, Oracle atau Access dan lain-lain tergantung dengan jenis JDBC yang dipakai, 
2. Dapat berjalan pada sembarang platform yang mempunyai Java Virtual Machine(JVM). 
- Tugas utama JDBC 
1. Membangun sebuah koneksi ke sumber data (data source). 
2. Mengirim statement ke sumber data. 
3. Mengeksekusi hasil dari statement tersebut 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 60
2.2 Menggunakan JDBC 
Berikut Tahapan yang dilakukan untuk menggunakan JDBC : 
import java.sql.*; 
/** 
* 
* @author Gianto-echa 
*/ 
public class koneksi_database { 
Connection connection=null; 
void Koneksi() { 
try{ 
String connectionURL = jdbc:mysql://localhost/coba; 
String username = root; 
String password = root; 
Class.forName(com.mysql.jdbc.Driver); 
connection= DriverManager.getConnection(connectionURL, username , password ); 
System.err.println(Sukses Koneksi); 
} 
catch(Exception ex){ 
System.err.println(Tidak Berhasil Koneksi); 
System.exit(1); 
} 
} 
public static void main(String args[]){ 
koneksi_database kb=new koneksi_database(); 
kb.Koneksi(); 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 61 
} 
Setelah anda ketikkan Kode tersebut, anda buat sebuah database dengan nama coba, kemudian compile 
dan jalankan, maka output yang akan dihasilkan adalah sebagai berikut:
Berikut penjabaran dari kelas koneksi_database untuk database, sesuai dengan kode diatas, 
- Pemanggilan Class Driver 
Class.forName(com.mysql.jdbc.Driver); 
Berikut bebrapa kode pemangilan class driver untuk berbagai macam database : 
• Oracle : Class.forName(“oracle.jdbc.OracleDriver”); 
• Sybase: Class.forName(“com.sybase.jdbc.SybDriver”); 
• ODBC: Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); 
• Mysql : Class.forName(com.mysql.jdbc.Driver); 
- Menentukan Lokasi Database Server 
Untuk menentukan lokasi database server untuk mysql, anda gunakan kode berikut ini : 
String connectionURL = jdbc:mysql://localhost/alumni ; 
3. Perintah SQL 
Structured Query Language (SQL) telah diakui sebagai bahasa standart untuk mengakses dan 
manipulasi database. Pada pembahasan kali ini kita akan tunjukkan beberapa intruksi SQLdan dibedakan 
menjadi 2 macam perintah yaitu: 
3.1 DML (Data manipulation Language) 
Peritah DML adalah perintah query yang digunakan untuk memanipulasi data pada suatu database. 
Berikut perintah yang ada pada DML, 
a. Insert 
insert into NamaTabel 
values('+field_1+','+Field_2+','+…+','+Field_ke_n+');; 
Contoh : 
Dalam Contoh Ini Kita Akan membuat sebuah database sederhana dengan nama coba, kemudian di 
dalamnya kita buat sebuah table dengan nama mahasiswa dengan struktur sebagai berikut : 
Nama Field Type (Length) 
Nim Varchar(12) 
Nama Varchar(40) 
Alamat Varchar(70) 
Kemudian Anda Buat Tampilan GUI Seperti Berikut, dengan nama kelas Database : 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 62
Dengan property sebagai berikut : 
Komponen Label Nama Objek 
Nim (JTextField) txtnim 
Nama (JTextField) txtnama 
Alamat (JTextArea) txtalamat 
Setelah itu anda anda tambahkan fungsi untuk koneksi seperti berikut : 
void Koneksi(){ 
try{ 
String connectionURL = jdbc:mysql://localhost/coba; 
String username = root; 
String password = root; 
Class.forName(com.mysql.jdbc.Driver); 
con= DriverManager.getConnection(connectionURL, username , password ); 
System.err.println(Sukses Koneksi); 
} 
catch(Exception ex) 
{ 
System.err.println(Tidak Berhasil Koneksi); 
System.exit(1); 
} 
} 
Anda Panggil Fungsi Koneksi Tersebut Kedalam Method/Fungsi Utama dari aplikasi anda seperti berikut 
: 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 63
public static void main(String args[]) 
{ 
Database db2=new Database(); 
db.Koneksi(); 
} 
Setelah itu anda buat sebuah fungsi dengan nama simpan() kemudian anda ketikkan kode berikut ini : 
void simpan(){ 
try 
{ 
Statement statement = con.createStatement(); 
String sql=insert into mahasiswa 
values('+txtnim.getText()+','+txtnama.getText()+','+txtalamat.getText()+');; 
statement.executeUpdate(sql); 
statement.close(); 
JOptionPane.showMessageDialog(null,Berhasil disimpan); 
} 
catch(Exception ex){ 
JOptionPane.showMessageDialog(null,nim data sudah ada); 
System.err.print(ex); 
} 
} 
Anda Buat Sebuah Fungsi/Method dengan nama aksi() Kemudian anda panggil fungsi tersebut pada 
method aksi ketika tombol simpan di klik, seperti berikut ini : 
void aksi() 
{ 
btsimpan.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent evt) { 
simpan(); 
} 
}); 
} 
b. Select 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 64
Pernyataan Select digunakan untuk mengambil data dari table dalam database sesuai dengan kriteria 
yang ditentukan. Berikut ini adalah conton perintah Select: 
SELECT * FROM NamaTabel ; Mengambil seluruh data tanpa terkecuali. 
SELECT field_1,field_2 FROM NamaTabel ; Mengambil data dari table Data field Kode saja 
Contoh : Anda Tambahkan fungsi cari() pada program sebelumnya dan ketikkan kode berikut ini : 
void cari(){ 
try{ 
Statement stat = con.createStatement(); 
String sql=SELECT * FROM mahasiswa Where nim like'+txtnim.getText()+'; 
ResultSet isi = stat.executeQuery(sql); 
if(isi.next()){ 
txtnama.setText(isi.getString(1)); 
txtalamat.setText(isi.getString(2)); 
} 
else{ 
JOptionPane.showMessageDialog(null,mahasiswa dengan nim tersebut tidak 
ada..!); 
} 
stat.close(); 
} 
catch (Exception ex){ 
JOptionPane.showMessageDialog(null,Error :+ex); 
} 
} 
Kemudian anda panggil fungsi tersebut pada method aksi ketika tombol cari di klik, seperti berikut ini : 
void aksi() 
{ 
btcari.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent evt) { 
cari(); 
} 
}); 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 65
c. Update 
update NamaTabel set field_1='+ value_1+', field_2='+ value_2+', field_3='+ value_3+' 
where field_x='+value_4+’; 
Contoh : Anda Tambahkan fungsi update() pada program sebelumnya dan ketikkan kode berikut ini : 
void update(){ 
try{ 
Statement stm=con.createStatement(); 
String sql=update mahasiswa set nama='+txtnama.getText()+', 
alamat='+txtalamat.getText()+'where nim='+txtnim.getText()+'; 
stm.executeUpdate(sql); 
stm.close(); 
JOptionPane.showMessageDialog(null,Berhasil diedit); 
} 
catch(Exception ex){ 
JOptionPane.showMessageDialog(null,Error :+ex); 
} 
} 
Kemudian anda panggil fungsi tersebut pada method aksi ketika tombol update di klik, seperti berikut 
ini : 
void aksi() 
{ 
btupdate.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent evt) { 
update(); 
} 
}); 
} 
d. Delete 
delete from NamaTabel + where Field_x='+value_x+'; 
Contoh : Anda Tambahkan fungsi hapus() pada program sebelumnya dan ketikkan kode berikut ini : 
void hapus(){ 
try{ 
Statement statement = con.createStatement(); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 66
String sql=delete from mahasiswa +  where nim='+txtnim.getText()+'; 
statement.executeUpdate(sql); 
statement.close(); 
JOptionPane.showMessageDialog(null,Data telah di Hapus); 
} 
catch(Exception ex){ 
JOptionPane.showMessageDialog(null,Error :+ex); 
} 
} 
Kemudian anda panggil fungsi tersebut pada method aksi ketika tombol hapus di klik, seperti berikut ini : 
void aksi() 
{ 
bthapus.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent evt) { 
cari(); 
} 
}); 
} 
Listing Kode Lengkap Bisa Anda Lihat Di lampiran Yang Ada Pada Modul ini. 
3.2 DDL (Data Definition Language) 
Peritah DDL adalah perintah query yang digunakan untuk membangun atau merekayasa database. 
Berikut perintah yang ada pada DDL, 
a. Create 
b. Alter 
c. Drop 
Dalam praktikum ini kita hanya akan mempelajari proses DML(Data Manipulation Language) yaitu 
proses yang nantinya kita gunakan untuk memanipulasi record yang terdapat dalam table dari databse 
yang telah kita buat. 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 67
Daftar Pustaka 
Jardiknas. “Java Education Network Indonesia”, Meruvian education 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 68
Lampiran 1 
Contoh Listing Kode Aplikasi Java 
A. Membuat Jam Digital 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 
import javax.swing.Timer; 
public class jam extends JFrame 
{ 
JLabel tampil=new JLabel(); 
Timer tim; 
jam() 
{ 
super(jam); 
setLocation(200,100); 
setSize(400,200); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
void reaksi() 
{ 
getContentPane().setLayout(new FlowLayout()); 
getContentPane().add(tampil); 
tampil.setFont(new Font(impaq,20,50)); 
getContentPane().setBackground(Color.RED); 
tampil.setForeground(Color.GREEN); 
setVisible(true); 
ActionListener t=new ActionListener() 
{ 
public void actionPerformed(ActionEvent evt) 
{ 
String nol_jam=; 
String nol_detik=; 
String nol_menit=; 
Date dt=new Date (); 
int nilai_jam=dt.getHours(); 
int nilai_menit=dt.getMinutes(); 
int nilai_detik=dt.getSeconds(); 
if (nilai_detik =9) 
{ 
nol_detik=0; 
} 
if (nilai_menit = 9) 
{ 
nol_menit =0; 
} 
if (nilai_jam = 9 ) 
{ 
nol_jam=0; 
} 
String jam=nol_jam+ Integer.toString(nilai_jam); 
Stringmenit=nol_menit+Integer.toString(nilai_menit); 
Stringdetik=nol_detik+Integer.toString(nilai_detik); 
tampil.setText(+jam+:+menit+:+detik+); 
} 
}; 
tim=new Timer(1000,t); 
tim.start(); 
} 
public static void main(String args[]) 
{ 
jam j=new jam(); 
j.reaksi(); 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 69
B. Membuat JMenu 
import javax.swing.*; 
import java.awt.*; 
import javax.swing.table.*; 
import java.awt.event.*; 
import java.sql.*; 
class menunya extends JFrame 
{ 
JMenuBar mb=new JMenuBar(); 
JMenu mn=new JMenu(File); 
JMenu mn2=new JMenu(Open); 
JRadioButton bt=new JRadioButton(buku); 
JMenuItem mnt=new JMenuItem(Close); 
JMenuItem unta=new JMenuItem(Unta); 
menunya() 
{ 
super(PROGRAM MENGHITUNG ZAKAT); 
setLocation(200,100); 
setSize(400,350); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
void objek() 
{ 
getContentPane().add(mb,BorderLayout.NORTH); 
mb.add(mn); 
mn2.add(bt); 
mn.add(mn2); 
mn.add(mnt); 
mn.add(unta); 
mb.setBounds(10,10,100,30); 
setVisible(true); 
} 
public static void main(String args[]) 
{ 
menunya ZZ=new menunya(); 
ZZ.objek(); 
} 
} 
C. Aplikasi Tampilkan Tanggal 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 
import javax.swing.Timer; 
class tanggal extends JFrame 
{ 
JLabel tampil=new JLabel(); 
Timer tim; 
tanggal() 
{ 
setTitle(jam); 
setLocation(200,100); 
setSize(400,150); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
buatTanggal(); 
} 
void tampilan() 
{ 
getContentPane().setLayout(new FlowLayout()); 
getContentPane().add(tampil); 
tampil.setFont(new Font(impaq,20,25)); 
tampil.setForeground(Color.GREEN); 
setVisible(true); 
} 
void buatTanggal() 
{ 
ActionListener t=new ActionListener() 
{ 
public void actionPerformed(ActionEvent evt) 
{ 
String bulan=; 
String hari=; 
Date dt=new Date(); 
int ntahun=dt.getYear()+1900; 
int nbulan=dt.getMonth()+1; 
int nhari=dt.getDate(); 
String tbulan=bulan+Integer.toString(nbulan); 
String thari =hari+Integer.toString(nhari); 
String thn=String.valueOf(ntahun); 
tampil.setText(Tanggal : +thari+ Bulan 
:+tbulan+ Tahun :+thn); 
} 
}; 
tim=new Timer(1000,t); 
tim.start(); 
} 
public static void main(String args[]) 
{ 
tanggal j=new tanggal(); 
j.tampilan(); 
} 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 70
D. Color Chooser 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.colorchooser.*; 
import javax.swing.*; 
class colorcoser extends JFrame 
{ 
JLabel cop=new JLabel(PROGRAM GANTI WARNA); 
JInternalFrame jInternalFrame1 = new JInternalFrame(); 
JColorChooser jColorChooser1 = new JColorChooser(); 
JPanel Panel1 = new JPanel(); 
JPanel Panel2 = new JPanel(); 
JButton btChange = new JButton(); 
JButton btCancel = new JButton(); 
JButton warna = new JButton(Ganti Warna); 
colorcoser() 
{ 
super(PROGRAM GANTI WARNA); 
setSize(500,550); 
setLocation(40,20); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
void komponen() 
{ 
getContentPane().setLayout(null); 
getContentPane().add(jInternalFrame1); 
jInternalFrame1.getContentPane().setLayout(null); 
jInternalFrame1.setVisible(false); 
getContentPane().add(cop); 
getContentPane().add(warna); 
cop.setBounds(150, 10, 150, 23); 
warna.setBounds(150, 40, 150, 23); 
Panel1.setLayout(null); 
Panel1.setBorder(javax.swing.BorderFactory.createEtchedBorder 
(javax.swing.border.EtchedBorder.RAISED)); 
Panel1.add(jColorChooser1); 
jColorChooser1.setBounds(9, 10, 440, 290); 
jInternalFrame1.getContentPane().add(Panel1); 
Panel1.setBounds(10, 10, 460, 310); 
Panel2.setLayout(null); 
Panel2.setBorder(javax.swing.BorderFactory.createEtchedBorder 
(javax.swing.border.EtchedBorder.RAISED)); 
btChange.setText(Change); 
Panel2.add(btChange); 
btChange.setBounds(230, 10, 100, 23); 
btCancel.setText(Cancel); 
Panel2.add(btCancel); 
btCancel.setBounds(350, 10, 100, 23); 
jInternalFrame1.getContentPane().add(Panel2); 
Panel2.setBounds(10, 330, 460, 40); 
jInternalFrame1.setBounds(4, 70, 490, 420); 
getContentPane().setBackground(new 
java.awt.Color(234,235,213)); 
setVisible(true); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 71 
} 
void reaksi() 
{ 
warna.addActionListener(new ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
if(e.getSource()==warna) 
{ 
jInternalFrame1.setVisible(true); 
} 
} 
}); 
btCancel.addActionListener(new 
ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
if(e.getSource()==btCancel) 
{ 
jInternalFrame1.setVisible(false); 
} 
} 
}); 
btChange.addActionListener(new 
ActionListener() 
{ 
public void actionPerformed(ActionEvent e) 
{ 
if(e.getSource()==btChange) 
{ 
Color 
newColor=jColorChooser1.getColor(); 
getContentPane().setBackground(newColor); 
jInternalFrame1.setVisible(false); 
} 
} 
}); 
} 
public static void main(String[] args) 
{ 
colorcoser evt=new colorcoser(); 
evt.komponen(); 
evt.reaksi(); 
} 
}
A. Contoh Aplikasi Database Sederhana : 
Anda Buat Database baru dengan nama coba, kemudian buat table dengan mengeksekusi query 
berikut ini : 
CREATE TABLE IF NOT EXISTS `mahasiswa` ( 
`nim` varchar(12) NOT NULL, 
`nama` varchar(40) NOT NULL, 
`alamat` varchar(200) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 
Kemudian Anda Buat Kelas Baru Dengan Nama Database2 dan Anda Pastekan Kode Berikut: 
import java.sql.*; 
import javax.swing.*; 
import java.awt.event.*; 
/** 
* 
* @author Gianto-echa 
*/ 
public class Database2 extends JFrame 
{ 
Connection con=null; 
JLabel jLabel1 = new JLabel(); 
JTextField txtnama = new JTextField(); 
JLabel jLabel2 = new JLabel(); 
JScrollPane jScrollPane1 = new JScrollPane(); 
JTextArea txtalamat = new JTextArea(); 
JLabel jLabel3 = new JLabel(); 
JButton bthapus = new JButton(); 
JButton btcari = new JButton(); 
JButton btupdate = new JButton(); 
JTextField txtnim = new JTextField(); 
JLabel jLabel4 = new JLabel(); 
JButton btsimpan = new JButton(); 
Database2() 
{ 
setSize(320,280); 
setLocation(100,100); 
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
void Koneksi() 
{ 
try 
{ 
String connectionURL = jdbc:mysql://localhost/coba; 
String username = root; 
String password = root; 
Class.forName(com.mysql.jdbc.Driver); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 72
con= DriverManager.getConnection(connectionURL, username , password ); 
System.err.println(Sukses Koneksi); 
} 
catch(Exception ex) 
{ 
System.err.println(Tidak Berhasil Koneksi); 
System.exit(1); 
} 
} 
void simpan() 
{ 
try 
{ 
Statement statement = con.createStatement(); 
String sql=insert into mahasiswa 
values('+txtnim.getText()+','+txtnama.getText()+','+txtalamat.getText()+');; 
statement.executeUpdate(sql); 
statement.close(); 
JOptionPane.showMessageDialog(null,Berhasil disimpan); 
} 
catch(Exception ex) 
{ 
JOptionPane.showMessageDialog(null,nim data sudah ada); 
System.err.print(ex); 
} 
} 
public void cari() 
{ 
try 
{ 
Statement stat = con.createStatement(); 
String sql=SELECT * FROM mahasiswa Where nim like'+txtnim.getText()+'; 
ResultSet isi = stat.executeQuery(sql); 
if(isi.next()) 
{ 
txtnama.setText(isi.getString(1)); 
txtalamat.setText(isi.getString(2)); 
} 
else 
{ 
JOptionPane.showMessageDialog(null,mahasiswa dengan nim tersebut tidak ada..!); 
} 
stat.close(); 
} 
catch (Exception ex) 
{ 
JOptionPane.showMessageDialog(null,Error :+ex); 
} 
} 
void update() 
{ 
try 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 73
{ 
Statement stm=con.createStatement(); 
String sql=update mahasiswa set nama='+txtnama.getText()+', 
alamat='+txtalamat.getText()+'where nim='+txtnim.getText()+'; 
stm.executeUpdate(sql); 
stm.close(); 
JOptionPane.showMessageDialog(null,Berhasil diedit); 
} 
catch(Exception ex) 
{ 
JOptionPane.showMessageDialog(null,Error :+ex); 
} 
} 
public void hapus() 
{ 
try 
{ 
Statement statement = con.createStatement(); 
String sql=delete from mahasiswa +  where nim='+txtnim.getText()+'; 
statement.executeUpdate(sql); 
statement.close(); 
JOptionPane.showMessageDialog(null,Data telah di Hapus); 
} 
catch(Exception ex) 
{ 
JOptionPane.showMessageDialog(null,Error :+ex); 
} 
} 
void aksi() 
{ 
btsimpan.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent evt) { 
simpan(); 
} 
}); 
btupdate.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent evt) { 
update(); 
} 
}); 
bthapus.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent evt) { 
hapus(); 
} 
}); 
btcari.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent evt) { 
cari(); 
} 
}); 
} 
private void initComponents() { 
getContentPane().setLayout(null); 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 74
jLabel1.setText(Contoh Aplikasi Database Sederhana); 
getContentPane().add(jLabel1); 
jLabel1.setBounds(20, 10, 200, 14); 
getContentPane().add(txtnama); 
txtnama.setBounds(90, 70, 170, 20); 
jLabel2.setText(Alamat); 
getContentPane().add(jLabel2); 
jLabel2.setBounds(20, 100, 34, 14); 
txtalamat.setColumns(20); 
txtalamat.setRows(5); 
jScrollPane1.setViewportView(txtalamat); 
getContentPane().add(jScrollPane1); 
jScrollPane1.setBounds(90, 96, 166, 70); 
jLabel3.setText(Nama); 
getContentPane().add(jLabel3); 
jLabel3.setBounds(20, 70, 27, 14); 
bthapus.setText(Delete); 
getContentPane().add(bthapus); 
bthapus.setBounds(180, 180, 73, 23); 
btcari.setText(Cari); 
getContentPane().add(btcari); 
btcari.setBounds(200, 40, 51, 23); 
btupdate.setText(Update); 
getContentPane().add(btupdate); 
btupdate.setBounds(90, 180, 73, 23); 
getContentPane().add(txtnim); 
txtnim.setBounds(90, 40, 100, 20); 
jLabel4.setText(Nim); 
getContentPane().add(jLabel4); 
jLabel4.setBounds(20, 40, 17, 14); 
btsimpan.setText(Simpan); 
getContentPane().add(btsimpan); 
btsimpan.setBounds(10, 180, 67, 23); 
setVisible(true); 
} 
public static void main(String args[]) 
{ 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 75
Database2 db2=new Database2(); 
db2.initComponents(); 
db2.Koneksi(); 
db2.aksi(); 
} 
M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m 
Page 76 
}

More Related Content

What's hot (11)

Makalah Perulangan Java
Makalah Perulangan JavaMakalah Perulangan Java
Makalah Perulangan Java
 
Java
JavaJava
Java
 
Modul 2 dunia komputer bm
Modul 2 dunia komputer bmModul 2 dunia komputer bm
Modul 2 dunia komputer bm
 
Modul 2 dunia komputer bm
Modul 2 dunia komputer bmModul 2 dunia komputer bm
Modul 2 dunia komputer bm
 
Modul 1 pbo
Modul 1 pboModul 1 pbo
Modul 1 pbo
 
Algoritma dan pemrograman
Algoritma dan pemrogramanAlgoritma dan pemrograman
Algoritma dan pemrograman
 
Modul pelatihan-java2
Modul pelatihan-java2Modul pelatihan-java2
Modul pelatihan-java2
 
Java
JavaJava
Java
 
Makalah java
Makalah javaMakalah java
Makalah java
 
My javanote01
My javanote01 My javanote01
My javanote01
 
Makalah java
Makalah javaMakalah java
Makalah java
 

Similar to rahmat ramadhani dasar pmograman

Modul praktikum dasar dasar pemrograman java
Modul  praktikum dasar dasar pemrograman javaModul  praktikum dasar dasar pemrograman java
Modul praktikum dasar dasar pemrograman javastephan EL'wiin Shaarawy
 
Pengenalan java
Pengenalan javaPengenalan java
Pengenalan javadhiqde
 
Pemrograman II -1.pdf
Pemrograman II -1.pdfPemrograman II -1.pdf
Pemrograman II -1.pdfngajiyanto .
 
27. prak.-algoritma-pemrograman-ii
27. prak.-algoritma-pemrograman-ii27. prak.-algoritma-pemrograman-ii
27. prak.-algoritma-pemrograman-iiAyu Karisma Alfiana
 
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfmodul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfHerikusnawijaya3
 
Pengantar dasar-pemrograman-java
Pengantar dasar-pemrograman-java  Pengantar dasar-pemrograman-java
Pengantar dasar-pemrograman-java Internet Explorer
 
Laporan Pemrograman Mobile_1404505075 & 1404505077
Laporan Pemrograman Mobile_1404505075 & 1404505077Laporan Pemrograman Mobile_1404505075 & 1404505077
Laporan Pemrograman Mobile_1404505075 & 1404505077Pande Narendra
 
Makalah Perulangan Java
Makalah Perulangan JavaMakalah Perulangan Java
Makalah Perulangan JavaSTMIK BUMIGORA
 
Aplikasi Pendataan stok barang pada toko pakaian berbasis java dekstop
Aplikasi Pendataan stok barang pada toko pakaian berbasis java dekstopAplikasi Pendataan stok barang pada toko pakaian berbasis java dekstop
Aplikasi Pendataan stok barang pada toko pakaian berbasis java dekstoptiaraberlian
 
Struktur Pemrograman Java
Struktur Pemrograman JavaStruktur Pemrograman Java
Struktur Pemrograman Javaroji muhidin
 

Similar to rahmat ramadhani dasar pmograman (20)

Modul praktikum dasar dasar pemrograman java
Modul  praktikum dasar dasar pemrograman javaModul  praktikum dasar dasar pemrograman java
Modul praktikum dasar dasar pemrograman java
 
Java
JavaJava
Java
 
Pengenalan java
Pengenalan javaPengenalan java
Pengenalan java
 
Laporan i
Laporan iLaporan i
Laporan i
 
Pemrograman II -1.pdf
Pemrograman II -1.pdfPemrograman II -1.pdf
Pemrograman II -1.pdf
 
27. prak.-algoritma-pemrograman-ii
27. prak.-algoritma-pemrograman-ii27. prak.-algoritma-pemrograman-ii
27. prak.-algoritma-pemrograman-ii
 
Modul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeansModul praktikum-pemrograman java dgn netbeans
Modul praktikum-pemrograman java dgn netbeans
 
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdfmodul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
modul-praktikum-pemrogramanjavadgnnetbeans-171005005920.pdf
 
Java
JavaJava
Java
 
Makalah java
Makalah javaMakalah java
Makalah java
 
Pengantar dasar-pemrograman-java
Pengantar dasar-pemrograman-java  Pengantar dasar-pemrograman-java
Pengantar dasar-pemrograman-java
 
Laporan Pemrograman Mobile_1404505075 & 1404505077
Laporan Pemrograman Mobile_1404505075 & 1404505077Laporan Pemrograman Mobile_1404505075 & 1404505077
Laporan Pemrograman Mobile_1404505075 & 1404505077
 
Makalah java
Makalah javaMakalah java
Makalah java
 
Makalah java
Makalah javaMakalah java
Makalah java
 
Makalah java
Makalah javaMakalah java
Makalah java
 
Makalah Perulangan Java
Makalah Perulangan JavaMakalah Perulangan Java
Makalah Perulangan Java
 
Aplikasi Pendataan stok barang pada toko pakaian berbasis java dekstop
Aplikasi Pendataan stok barang pada toko pakaian berbasis java dekstopAplikasi Pendataan stok barang pada toko pakaian berbasis java dekstop
Aplikasi Pendataan stok barang pada toko pakaian berbasis java dekstop
 
Algol
AlgolAlgol
Algol
 
Struktur Pemrograman Java
Struktur Pemrograman JavaStruktur Pemrograman Java
Struktur Pemrograman Java
 
Prak 1
Prak 1Prak 1
Prak 1
 

rahmat ramadhani dasar pmograman

  • 1. MODUL PRAKTIKUM DASAR-DASAR PEMROGRAMAN JAVA Versi 1.2 Copyleft By: Gianto Widodo, S.Kom JURUSAN TEKNIK INFORMATIKA UIN MALIKI MALANG 2011 M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 1
  • 2. KATA PENGANTAR Alhamdulillah, Segala Puji Hanya untuk Allah Tuhan Yang Maha Berilmu. Atas petunjukNya-lah kami dapat menyelesaikan Diktat Praktikum Dasar-dasar pemrograman ini. Diharapkan dengan adanya diktat ini, mahaMahasiswa mendapatkan panduan dalam mengikuti Praktikum Dasar-dasar pemrograman pada Jurusan Teknik Informatika UIN Malang. Materi yang ditulis dalam buku ini berisi sebanyak 10 modul praktikum. Di dalamnya berisi tentang pemahaman dan konsep dasar pemrograman yang ditulis dengan menggunakan bahasa pemrograman Java. Isi buku disusun mulai dari teori penunjang/dasar teori, tugas pendahuluan yang berisi konsep yang harusdiketahui mahaMahasiswa sebelum melaksanakan praktikum serta percobaan dan latihan. Dengan mengacu pada diktat praktikum ini mahaMahasiswa diharapkan dapat memahami dan mengerti akan konsep dasar serta logika dalam pemrograman Java. Yang diharapkan nantinya bisa menjadi bekal untuk menjadi programmer yang handal dimasa mendatang. Sekalipun buku ini telah dikerjakan dengan proses yang cukup panjang, akan tetapi kami masih tidak menutup adanya kekurangan akan buku ini. Segala masukan, kritik dan review sangat kami harapkan untuk semakin menyempurnakannya pada kesempatan mendatang. Malang, 09 Februari 2011 PENYUSUN M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 2
  • 3. PETUNJUK PRAKTIKUM 1. Mahasiswa wajib menyelesaikan tugas pendahuluan sebelum pelaksanaan praktikum. 2. Tugas pendahuluan dikumpulkan 1 hari sebelum pelaksanaan praktikum pada assisten praktikum pada waktu yang telah disepakati 3. Assisten praktikum akan memeriksa dan menguji pemahaman Mahasiswa tentang materi yang akan dipraktekkan keesokan harinya 4. Mahasiswa yang tidak dapat mengikuti praktikum bila : a. Mahasiswa tidak mengumpulkan tugas pendahuluan b. Tugas Pendahuluan adalah hasil Copy dari milik praktikan lainnya c. Mahasiswa tidak dapat menjawab pertanyaan assisten praktikum d. Tugas pendahuluan yang dikerjakan tidak lengkap atau dibuat seadanya e. Dan sebab lain-lain yang telah disepakati bersama diantara dosen,assisten dan Mahasiswa 5. Dilarang membawa piranti penyimpanan seperti flaskdisk, hardisk eksternal selama praktikum berlangsung 6. Selama praktikum Mahasiswa mengerjakan sendiri programnya, jaringan computer,hubungan internet dimatikan sementara 7. Dosen dan assisten praktikum tidak membetulkan kesalahan program Mahasiswa karena sintaks melainkan hanya membantu menjelaskan/memberikan konsep dari program yang akan dibuat. 8. Tiga puluh menit sebelum praktikum berakhir dosen dan assisten praktikum akan memeriksa hasil program Mahasiswa 9. Akhir praktikum Mahasiswa mengumpulkan hasil pengamatan program 10. Seminggu setelah praktikum/Pada saat praktikum berikutnya Mahasiswa mengumpulkan laporan akhir dari praktikum terakhir sesuai format yang telah dicantumkan permodul. 11. Mahasiswa/Praktikan Tidak diijinkan mengikuti praktikum jika terlambat lebih dari 20 menit. 12. Pakaian Ketika praktikum adalah baju putih bukan kaos dan celana hitam kain untuk putra dan rok hitam untuk putri. Jika memakai pakaian yang melanggar tidak ada peringatan dan langsung di persilahkan meninggalkan praktikum atau ganti pakaian. Diperbolehkan jika memakai jas almamater dan bukan jaket. 13. Ketika UTS atau UAS Semua praktikan mengenakan Jas Almamater. M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 3
  • 4. DAFTAR ISI KATA PENGANTAR ..................................................................................................................... DAFTAR ISI ................................................................................................................................... PETUNJUK PRAKTIKUM............................................................................................................. MODUL 1 Pengenalan Java, Editor Dan Pembuatan Class .............................................................. MODUL 2 Tipe Data, Keyword, Variabel, Operator Dan Teknik Konfersi ...................................... MODUL 3 Input Dari Keyboard Dan Struktur Kontrol .................................................................... MODUL 4 Perulangan/Looping dan Break Continue ....................................................................... MODUL 5 Array/Larik (1 Dimensi) dan (Multidimensi) .................................................................. MODUL 6 Algoritma Sorting .......................................................................................................... MODUL 7 Exception Handling dan Method Dasar .......................................................................... MODUL 8 Dasar Aplikasi GUI (Graphical User Interface) Dasar .................................................... MODUL 9 Event Handling .............................................................................................................. MODUL 10 Pemrograman Database Dasar...................................................................................... DAFTAR PUSTAKA M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 4
  • 5. MODUL 1 PENGENALAN JAVA, EDITOR DAN SINTAKS JAVA A. Target Pembelajaran 1. Mengenal bahasa pemrograman JAVA. 2. Mampu membuat kelas sederhana dengan bahasa pemrograman JAVA. 3. Mengerti penggunaan komentar dalam bahasa pemrograman JAVA. 4. Mengetahui cara menggunakan Netbeans. 5. Mengetahui Penggunaan Character Literal. B. Materi Dasar 1. Pengenalan JAVA Java adalah salah satu bahasa pemrograman yang bersifat open source yang merupakan produk dari Sun Microsystem dan sekarang di pegang oleh oracle. Bahasa Java adalah bahasa modern yang telah diterima masyarakat komputasi dunia. Hampir semua perusahaan perangkat lunak dan komputer besar mendukung dan mengembangkan aplikasi sistem berbasis Java. Java adalah salah satu bahasa pemrogaman Multiplatform (Bisa berjalan di berbagai macam sistem operasi) karena pada dasarnya java mempunyai Jre (java runtime environment) atau dapat kita artikan sebagai mesin tersendiri untuk mengeksekusi binary code hasil dari compilasi program yang telah kita buat, bereda dengan bahasa pemrograman vb, c++ yang memanfaatkan komponen sistem dalam Windows untuk mengeksekusi binary code hasil kompilasi program.. Pada Tahun 1996, Sun Microsystem secara resmi merilis versi awal Java yang kemudian terus berkembang hingga muncul JDK 1.1 (Java Development Kit versi 1.1). Perkembangan terus dilakukan hingga muncul versi baru yang disebut Java 2. Perubahan utama antara versi sebelumnya adalah adanya Swing yang merupakan teknologi Graphical User Interface (GUI) yang mampu menghasilkan aplikasi desktop yang benar-benar baik. Untuk mengembangkan aplikasi berbasis java, kita memerlukan Java Development Kit(JDK), saat ini java telah mencapai versi 2 yang kenal dengan java 2 platform. Java 2 platform, dibagi menjadi tiga kategori yaitu: 1. Java 2 Standart Edition (J2SE) 2. Java 2 Enterprice Edition(J2EE) 3. Java 2 Micro Edition(J2ME) M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 5
  • 6. 2. Instalasi JDK Sebelum anda membuat aplikasi dengan java maka anda harus menginstal software bahasa pemrograman java. java dapat anda dapatkan dengan cara download di alamat link berikut http://java.sun.com. Kemudian setelah anda mendownloadnya maka mulai dengan menginstall, pada dasarnya proses insalasi java sangat mudah yaitu dengan cara mengklik ganda pada file master java kemudian ikuti prosedur yang diperintahkan. 3. Editor Java Ada banyak editor yang bisa kita gunakan untuk menuliskan soce code bahasa pemrograman java, bahkan semua editor dimungkinkan selama editor tersebut mampu menyimpan file dengan ekstensi .java yang merupakan ekstensi dari file untuk menyimpan source code bahasa pemrograman java. Beberapa contoh editr yang bias kita pakai misalnya : - Netbens - Notepad - Eclips - dll 4. Program Java Pertama Kita akan coba untuk menganalisa program Java pertama pada contoh berikut: public class Hello { /** * My first java program */ public static void main(String[] args) { System.out.println("Hello world!"); } } Baris pertama kode : public class Hello Menandakan nama class yaitu Hello. Dalam Java semua kode seharusnya ditempatkan didalam deklarasi class. kita melakukannya dengan menggunakan kata kunci class. M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 6
  • 7. Baris berikutnya yaitu yang terdiri atas kurung kurawal { menandakan awal blok. kita dapat juga meletakkan kurung kurawal ini setelah baris pertama dari kode yang kita tulis. Jadi, kita dapat menulis kode kita sebagai berikut : public class Hello { } atau public class Hello { } Tiga baris selanjutnya menandakan adanya komentar Java. Komentar adalah sesuatu yang digunakan untuk mendokumentasikan setiap bagian dari kode yang ditulis. Komentar bukan merupakan bagian dari program itu sendiri, tetapi digunakan untuk tujuan dokumentasi. Komentar itu sendiri dapat ditambahkan pada kode yang Anda tulis sebagai petunjuk yang dapat membantu proses pembelajaran pemrograman yang baik. /** * My first java program */ Komentar dinyatakan dengan tanda “/*” dan “*/”. Segala sesuatu yang ada diantara tanda tersebut diabaikan oleh compiler Java, dan mereka hanya dianggap sebagai komentar sedangkan untuk membuat sebuah atau satu baris komentar dengan cara berikut ini // ini adalah program pertamaku. Semua tulisan yang berada satu baris dengan tan da // akan diabaikan oleh compiler. Baris selanjutnya, public static void main(String[] args) { } atau dapat juga ditulis sebagai berikut, public static void main(String[] args) { } mengindikasikan nama suatu method dalam class Hello yang bertindak sebagai method utama. Method utama adalah titik awal dari suatu program Java. Semua program kecuali applet yang ditulis dalam bahasa Java dimulai dengan method utama. Yakinkan untuk mengikuti kaidah penulisan tanda yang benar. M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 7
  • 8. MODUL 2 TIPE DATA, KEYWORD, VARIABEL, OPERATOR DAN TEKNIK KONFERSI A. Target Praktikum - Mahasiswa mengetahui berbagai macam tipe data dan penggunaannya - Mahasiswa mengetahui berbagai macam keyword - Mahasiswa mengetahui cara pembuatan variable dan penggunaannya. - Mahasiswa mengetahui konfersi tipe data - Mahasiswa mampu menyelesaikan permasalahan terkait penggunaan variable dan tipe data - Mahasiswa mengetahui berbagai macam operator java dan penggunaannya - Mahasiswa mampu menyelesaikan permasalahan terkait penggunaan operator B. Materi Dasar 1. Keyword dalam Java Kata kunci adalah identifier yang telah dipesan untuk didefinisikan sebelumnya oleh Java untuk tujuan tertentu. Anda tidak dapat menggunakan keyword sebagai nama variabel, class, method. Berikut Ini Keyword Java : abstract default if private throws boolean do import public try break double int return void byte else static short while case extends long super const catch final native switch for char finally new this continue class float package throw transient 2. Tipe Data Primitif Bahasa pemrograman Java mendefinisikan delapan tipe data primitif. Mereka diantaranya adalah boolean (untuk bentuk logika), char (untuk bentuk tekstual), byte, short, int, long (integral), double and float (floating point). 3. Variabel M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 8
  • 9. Variabel adalah item yang digunakan data untuk menyimpan pernyataan objek. Variabel memiliki tipe data dan nama. Tipe data menandakan tipe nilai yang dapat dibentuk oleh variabel itu sendiri. Nama variabel harus mengikuti aturan untuk identifier. Berikut Aturan penamaan variable : • Diawali dengan ▫ huruf/abjad ▫ karakter mata uang ▫ underscore ( _ ) • Terdiri dari huruf/abjad, angka dan underscore • Tidak boleh mengandung karakter khusus atau spasi • Tidak boleh diawali dengan angka 3.1 Deklarasi dan Inisialisasi Variabel Untuk deklarasi variabel adalah sebagai berikut, <data tipe> <name> [=initial value]; Nilainya berada diantara <> adalah nilai yang disyaratkan, sementara nilai dalam tanda [] bersifat optional sesuai dengan tipe data yang dipakai untuk deklarasi variabel. 3.2 Menampilkan Data Variabel Untuk mengeluarkan nilai dari variabel yang diinginkan, kita dapat menggunakan perintah sebagai berikut, System.out.println() atau System.out.print() Contoh variabel : a. public class ContohVariabel1 { public static void main(String args[]) { int a=0; // local variable boolean b=true; // local variable float c=23; // local variable System.out.println(a); System.out.println(b); System.out.println(c); } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 9
  • 10. b. public class ContohVariabel2 { static int a; // member variable static boolean b; // member variable static float c; // member variable public static void main(String args[]) { System.out.println(a); System.out.println(b); System.out.println(c); } } 4. Teknik Konfersi Data Konfersi adalah cara untuk memberikan nilai suatu data dari satu tipe data ke tipe data yang lain. Contoh, perhatikan class berikut : class konversi { public static void main(String[]args) { int a=50; double b=40.5; String konfersi_a =String.valueOf(a); // konfersi dari integer ke string String konfersi_b =String.valueOf(b);//konfersi dari double ke string int pindah_keinteger =Integer.parseInt(konfersi_a);// konfersi dari string ke integer double pindah_kedouble =Double.parseDouble(konfersi_b); // konfersi dari string ke double } } Yang perlu diketahui, bahwa konfersi data dilakukan jika kita membutuhkan suatu tipe data yang sama untuk menjalankan sebuah proses, jika data tersebut sudah sama tipe datanya maka tidak perlu dilakukan proses konfersi data. Untuk konfersi data harus memenuhi dua criteria berikut ini : M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 10
  • 11. 1. Dua tipe data yang kompatibel 2. tipe data awal lebih kecil dibandingkan dengan tipe data tujuan. Jika dua syarat tersebut tidak terpenuhi maka bisa dilakukan teknik casting, yaitu melakukan perubahan tipe data dengan cara dipaksa. Casting ini bisa langsung dilakukan otomotis oleh java dengan cara menambahkan tipe data cating dikurung kemudian dilanjutkan dengan proses yang mau dijalankan, contoh : int a=4; int b=5; double c=(double)a/b; 5. Operator Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi, operator logika, dan operator kondisi. Operator ini mengikuti bermacam-macam prioritas yang pasti sehingga compilernya akan tahu yang mana operator untuk dijalankan lebih dulu dalam kasus beberapa operator yang dipakai bersama-sama dalam satu pernyataan. 5.1 Operator Aritmatika perator aritmatika merupakan operator yang berhubungan dengan fungsi matematika. contoh Nama Hasil a + b Penjumlahan Jumlah dari $a dan $b a - b Pengurangan Selisih dari $a dan $b a * b Perkalian Hasil kali dari $a dan $b a / b Pembagian Pembagian dari $a dan $b a % b Modulus Sisa dari $a dibagi dengan $b Penulisan Ekspresi Aritmatika = (a+b)/(a-b)-p*q = (a+b/p)/(a*b)-q pq + a b − − a b p + − Contoh Operator Aritmatika : public class OperasiAritmatika { public static void main(String args[]) { short x = 6; int y = 4; float a = 12.5f; M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 11 a b q ab
  • 12. float b = 7f; System.out.println(x= + x + , y = +y); System.out.println(x + y =+ (x + y)); System.out.println(x - y =+ (x - y)); System.out.println(x / y =+ (x / y)); System.out.println(x % y =+ (x % y)); System.out.println(a = + a + , b = +b); System.out.println(a / b =+ (a / b)); System.out.println(x / b =+ (x / b)); System.out.println(b / x =+ (b / x)); } } 5.2 Operator Relasi Operator Relasi membandingkan dua nilai dan menentukan keterhubungan diantara nilai-nilai tersebut. Hasil keluarannya berupa nilai boolean yaitu true atau false. contoh Nama Hasil a == b sama dengan benar jikaa sama dengan b a != b tidak sama benar jika a tidak sama dengan b a b lebih kecil benar jika a lebih kecil b a b lebih besar benar jika a lebih besar b a = b lebih kecil atau sama dengan benar jika a lebih kecil atau sama dengan b a = b lebih besar atau sama dengan benar jikaa lebih besar atau sama dengan b Contoh Operator Relasi : public class operator { public static void main(String args[]) { int a = 4; int b = 3; System.out.println(a==b); System.out.println(a!=b); System.out.println(ab); System.out.println(ab); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 12
  • 13. System.out.println(a=b); System.out.println(a=b); } } 5.3 Operator Tambahan dan Pengurangan Tabel operator Increment/decrement adalah : Operator Operasi Contoh ++a Pre-increment Nilai a ditambah satu, kemudian operasi berjalan a++ Post-increment Operasi dilaksananakan, kemudian a ditambah satu --a Pre-decrement Nilai a dikurang satu, kemudian operasi dilaksanakan satu a-- Post-decrement Operasi dilaksanakan, kemudian a dikurangi satu Contoh Operator Tambahan dan Pengurangan : public class IncrementDecrement { public static void main(String args[]) { int i = 1; System.out.println(i : + i ); // Pre-increment System.out.println(++i : + ++i ); // Post-increment System.out.println(i++ : + i++ ); System.out.println(i : + i ); // Pre-decrement System.out.println(--i : + --i ); // Post-decrement System.out.println(i-- : + i-- ); System.out.println(i : + i ); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 13 } }
  • 14. 5.4 Operator Logika Operator logika memiliki satu atau lebih operand boolean yang menghasilkan nilai boolean. Terdapat enam operator logika yaitu: (logika AND), (boolean logika AND), || (logika OR), | (boolean logika inclusive OR), ^ (boolean logika exclusive OR), dan ! (logika NOT). contoh Nama Hasil a b AND benar jika a dan b benar a || b OR benar jika a atau b benar a ^b XOR benar jika a atau b benar tetapi tidak keduanya Contoh Operator Logika: public class operator { public static void main(String args[]) { System.out.println(ab); System.out.println(a||b); System.out.println(a^b); System.out.println(ab); System.out.println(a|b); System.out.println(a!=b); } } Operator Perbandingan/Kondisi Operator perbandingan ini digunakan pada struktur kontrol program, seperti if, elseif, di mana dilakukan perbandingan antar dua nilai. contoh Nama Hasil a == b sama dengan benar jikaa sama dengan b a != b tidak sama benar jika a tidak sama dengan b a b lebih kecil benar jika a lebih kecil b a b lebih besar benar jika a lebih besar b a = b lebih kecil atau sama dengan benar jika a lebih kecil atau sama dengan b a = b lebih besar atau sama dengan benar jika a lebih besar atau sama dengan b M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 14
  • 15. MODUL 3 INPUT DARI KEYBOARD DAN STRUKTUR KONTROL A. Target Praktikum - Membuat program Java yang interaktif yang bisa mendapatkan input dari keyboard - Menggunakan class BufferedReader untuk mendapatkan input dari keyboard melalui layar console - Menggunakan class JOptionPane untuk mendapatkan input dari keyboard menggunakan GUI - Menggunakan struktur kontrol pemilihan (if, else, switch) yang digunakan untuk memilih blok kode yang akan dieksekusi B. Materi Dasar Setelah kita mempelajari konsep dasar pada Java dan menulis beberapa program sederhana. Sekarang kita akan mencoba membuat program kita lebih interaktif dengan menggunakan input dari keyboard. Pada bab ini, kita akan mempelajari dua cara memberikan input, yang pertama adalah menggunakan class BufferedReader dan melalui GUI (Graphical User Interface) dengan menggunakan class JOptionPane 1. Menggunakan BufferedReader Pada bagian ini, kita akan menggunakan class BufferedReader yang berada di package java.io untuk mendapatkan input dari keyboard. Berikut ini adalah langkah-langkah yang diperlukan untuk mendapatkan input dari keyboard: 1. Tambahkan library tambahan di bagian paling atas code Anda: import java.io.*; 2. Tambahkan statement berikut: BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) ); 3. Deklarasikan variabel String temporary untuk mendapatkan input, dan gunakan fungsi readLine() untuk mendapatkan input dari keyboard. Anda harus mengetikkannya di dalam blok try-catch: try { String temp = dataIn.readLine(); } catch( IOException e ){ System.out.println(“Error in getting input”); } Berikut ini adalah contoh source code lengkapnya: import java.io.BufferedReader; M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 15
  • 16. import java.io.InputStreamReader; import java.io.IOException; public class GetInputFromKeyboard { public static void main( String[] args ){ BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) ); String name = ; System.out.print(Silahkan Masukkan Nama Anda:); try{ name = dataIn.readLine(); }catch( IOException e ){ System.out.println(Error!); } System.out.println(Hallo + name +Anda Berhasil Membuatnya!!); } } Berikutnya akan penjelasan setiap baris dari code tersebut: - Statement, import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; menjelaskan bahwa kita akan menggunakan class BufferedReader, InputStreamReader dan IOException yang berada di java.io package. Java Application Programming Interface (API) berisi ratusan class yang sudah didefinisikan sebelumnya yang dapat digunakan untuk program Anda. Class-class tersebut dikumpulkan di dalam packages. - blok di bawah ini merupakan try-catch block, try{ name = dataIn.readLine(); }catch( IOException e ){ System.out.println(Error!); } Pada baris ini menjelaskan bahwa kemungkinan terjadi error pada pernyataan, name = dataIn.readLine(); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 16
  • 17. akan ditangkap. Kita akan membahas tentang penanganan exception pada bab selanjutnya dari pembahasan ini, tetapi untuk sekarang, Anda cukup mencatat bahwa Anda perlu menambahkan kode ini untuk menggunakan method readLine() dari BufferedReader untuk mendapatkan input dari user. - pernyataan, name = dataIn.readLine(); method diatas memanggil dataIn.readLine(), mendapatkan input dari user dan memberikan sebuah nilai String. Nilai ini akan disimpan ke dalam variabel name, yang akan kita gunakan pada statement akhir untuk menyambut user, System.out.println(Hello + name + !); 2. JOptionPane Cara selanjutnya untuk mendapatkan input dari user adalah dengan menggunakan class JoptionPane yang didapatkan dari javax.swing package. JoptionPane memudahkan memunculkan dialog box standard yang memberikan kepada user sebuah nilai atau menginformasikan sesuatu. Berikut Contoh Kode yang digunakan : import javax.swing.JOptionPane; public class GetInputFromKeyboard2 { public static void main( String[] args ) { String name = ; name = JoptionPane.showInputDialog(Please enter your name); String msg = Hello + name + !; JOptionPane.showMessageDialog(null, msg); } } Berikut penjelasannya - Statement pertama, import javax.swing.JOptionPane; Menjelaskan bahwa kita mengimpor class JoptionPane dari package javax.swing. Bisa juga ditulis seperti, import javax.swing.*; - Pernyataan, name = JOptionPane.showInputDialog(Please enter your name); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 17
  • 18. membuat sebuah input dialog JOptionPane, yang akan menampilkan dialog dengan sebuah pesan, sebuah textfield dan tombol OK seperti pada gambar. Hasil dari dialog tersebut adalah String dan disimpan ke dalam variabel name. Sekarang kita membuat pesan selamat datang, yang akan disimpan ke dalam variabe msg, String msg = Hello + name + !; Baris selanjutnya adalah menampilkan sebuah dialog yang berisi sebuah pesan dan tombol OK, JOptionPane.showMessageDialog(null, msg); 3. Struktur Kontrol Pada bagian ini, kita akan mempelajari tentang struktur kontrol dimana kita dapat mengubah cara eksekusi pada pernyataan yang dibuat di program kita. Struktur kontrol adalah pernyataan dari Java yang mengijinkan user untuk memilih dan mengeksekusi blok kode spesifik dan mengabaikan blok kode yang lain. 3.1 Statement if Pernyataan if akan menentukan sebuah pernyataan (atau blok kode) yang akan eksekusi jika dan hanya jika persyaratan bernilai benar(true). Contoh Program Dengan Statement If : public class Logika_if { public static void main (String args[]){ int targetnilai=60; boolean lulus=false; int nilaianda=70; M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 18
  • 19. if (nilaianda targetnilai){ lulus = true; } System.out.println(Status kelulusan :+lulus); } } 3.2 Statement if-else Pernyataan if-else digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi true dan pernyataan yang lain dengan kondisi false. Contoh Program Dengan Statement If Else: public class Statement_If_Else { public static void main (String args[]) { int targetnilai=60; String hadiah=; int nilaianda=50; if (nilaianda targetnilai){ hadiah = ponsel; } else{ hadiah = radio FM; System.out.println(Jenis hadiah :+hadiah); } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 19 } }
  • 20. 3.3 Statement if-else-if Pernyataan pada bagian kondisi else dari blok if-else dapat menjadi struktur if-else yang lain. Kondisi struktur seperti ini mengijinkan kita untuk membuat seleksi persyaratan yang lebih kompleks. Bentuk statement if-else if, if( boolean_expression1 ) statement1; else if( boolean_expression2 ) statement2; else statement3 Contoh Program Dengan Ststement If Else If : import javax.swing.*; public class Statement_If_Else_if { public static void main(String args[]) { String input=JOptionPane.showInputDialog(Nilai anda ?); int nilai=Integer.parseInt(input); String grade= ; if(nilai85){ grade=A; }else if(nilai75){ grade=B; }else{ grade=E; M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 20
  • 21. } System.out.println(Nilai Anda : +nilai); System.out.println(Grade Anda : +grade); System.exit(0); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 21 } } 3.4 Statement switch Cara lain untuk membuat cabang adalah dengan menggunakan kata kunci switch. Switch mengkonstruksikan cabang untuk beberapa kondisi dari nilai. Bentuk statement switch, switch( switch_expression ) { case case_selector1: statement1; break; case case_selector2: statement2; break; default: statement3; break; } switch_expression adalah ekspresi integer atau karakter dan case_selector1, case_selector2 dan seterusnya adalah konstanta unik dari nilai integer atau karakter.
  • 22. Contoh Program Dengan Ststement Switch Case: import javax.swing.*; public class AlurSwitch { public static void main(String args[]) { String pilihan=JOptionPane.showInputDialog(Menu :n1. Sate Kambingn2. Gulen3. Sop Kaki Kambingn4. Tongseng); int menu=Integer.parseInt(pilihan); switch(menu) { case 1: System.out.println(pilih sate kambing); break; case 2: System.out.println(pilih gule); break; case 3: System.out.println(pilih sop kaki kambing); break; case 4: System.out.println(pilih tongseng); break; default: System.out.println(Maaf, menu tidak ada); break; } System.exit(0); } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 22
  • 23. MODUL 4 PERULANGAN/LOOPING A. Target Praktikum - Mahasiswa mengetahui struktur dasar statement perulangan(looping) - Mahasiswa mengetahui cara pengoperasian statement perulangan - Mahasiswa mampu menyelesaikan permasalahan terkait penggunaan statement perulangan B. Materi Dasar pengulangan adalah berupa pernyataan dari Java yang mengijinkan kita untuk mengeksekusi blok code berulang-ulang sesuai dengan jumlah tertentu yang diinginkan. Ada tiga macam jenis dari struktur pengulangan yaitu while, do-while, dan for-loops. 1. while loop Pernyataan while loop adalah pernyataan atau blok pernyataan yang diulang-ulang sampai mencapai kondisi yang cocok. Bentuk pernyataan while, while( boolean_expression ) { statement1; statement2; } Pernyataan di dalam while loop akan dieksekusi berulang-ulang selama kondisi boolean_expression bernilai benar (true). Contoh, pada kode dibawah ini, public class contoh_while { public static void main(String args[]) { int i = 4; while( i 0 ){ System.out.print(i); i--; } } } Contoh diatas akan mencetak angka 4321 pada layar. M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 23
  • 24. 2. do-while loop Do-while loop mirip dengan while-loop. Pernyataan di dalam do-while loop akan dieksekusi beberapa kali selama kondisi bernilai benar(true). Perbedaan antara while dan do-while loop adalah dimana pernyataan di dalam do-while loop akan dieksekusi sedikitnya satu kali. Perbedaan antara while dan do-while loop adalah dimana pernyataan di dalam do-while loop akan dieksekusi sedikitnya satu kali. Bentuk pernyataan do-while, do{ statement1; statement2; }while( boolean_expression ); Pernyataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi kondisi dari boolean_expression. Jika nilai pada boolean_expression tersebut bernilai true, pernyataan di dalam do-while loop akan dieksekusi lagi. Berikut ini beberapa contoh do-while loop: Contoh 1: public class contoh_while { public static void main(String args[]) { int i = 4; do{ System.out.print(i); i--; }while( i 0 );} } Contoh ini akan memberikan output 4321 pada layar. 3. for loop Pernyataan for loop memiliki kondisi hampir mirip seperti struktur pengulangan sebelumnya yaitu melakukan pengulangan untuk mengeksekusi kode yang sama sebanyak jumlah yang telah ditentukan. Bentuk dari for loop, for (InitializationExpression; LoopCondition; StepExpression){ statement1; M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 24
  • 25. statement2; } - InitializationExpression – inisialisasi dari variabel loop. - LoopCondition - membandingkan variabel loop pada nilai batas tertentu - StepExpression - melakukan update pada variabel loop. Berikut ini adalah contoh dari for loop, public class cthfor { public static void main(String args[]){ for(int i=4;i=0;i--) { System.out.print(i); } } } Pada contoh ini, pernyataan i=4 merupakan inisialisasi dari variabel. Selanjutnya, kondisi i=0 diperiksa. Jika kondisi bernilai true, pernyataan di dalam for loop dieksekusi. Kemudian, ekspresi i-- dieksekusi, lalu akan kembali pada bagian pemeriksaan terhadap kondisi i=0 lagi. Kondisi ini akan dilakukan berulang-ulang sampai mencapai nilai yang salah (false). 4. Percabangan dalam Perulangan Pernyataan percabangan mengijinkan kita untuk mengatur aliran eksekusi program. Java memberikan tiga bentuk pernyataan percabangan: break, continue dan return. 4.2 Pernyataan break Pernyataan break memiliki dua bentuk: tidak berlabel (unlabeled) dan berlabel (labeled). 4.2.1 Pernyataan break tidak berlabel Pernyataan break tidak berlabel (unlabeled) digunakan untuk menghentikan jalannya pernyataan switch. Selain itu pernyataan break unlabeled juga bisa digunakan untuk menghentikan pernyataan-pernyataan for, while atau do-while loop. for( int i=0; i 5; i++ ){ if( i==3){ System.out.println(i); break; } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 25 }
  • 26. Dari pernyataan diatas didapatka jika i berposisi pada nilai maka perulangan akan dihentikan. Dan akan melakukan pencetakan angka i, yaitu angka 3. 4.2.2 Pernyataan break berlabel Bentuk label dari pernyataan break akan menghentikan pernyataan di luarnya, dimana sebelumnya harus diberikan label yang sudah di spesifikasikan pada program pada pernyataan break. Ketika sebuah nilai ditemukan, break akan menghentikan pernyataan yang diberi label searchLabel yang terletak di luar pernyataan for loop. searchLabel: for( int i=0; i6; i++ ) { if(i==5 ) { System.out.println(i); break searchLabel; } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 26 } Pernyataan break menghentikan pernyataan yang diberi label; dan tidak menjalankan aliran kontrol apapun pada label. Aliran kontrol pada label akan diberikan secara otomatis pada pernyataan yang terletak dibawah label. Jadi jika pernyataan yang tidak dibawahnya maka tidak akan mengenali label yang telah dituliskan. 4.3 Pernyataan Continue Pernyataan continue memiliki dua bentuk: berlabel dan tidak berlabel. Anda dapat menggunakan pernyataan continue untuk melanjutkan pengulangan yang sedang dijalankan oleh pernyataan for, while, atau do- while loop. 4.3.1 Pernyataan continue tidak berlabel Bentuk pernyataan continue tidak berlabel (unlabeled) akan melewati bagian pernyataan setelah pernyataan ini dituliskan dan memeriksa eksepresi logika (boolean) yang mengkontrol pengulangan. Jika ekspresi logika (boolean) masih bernilai true, maka pengulangan tetap dilanjutkan. Pada dasarnya pernyataan ini akan melanjutkan bagian pengulangan pada pernyataan loop. for( int i=0; i6; i++ ){ if(i==3 ){
  • 27. continue; } System.out.println(i); } 4.3.2 Pernyataan continue berlabel Bentuk pernyataan continue berlabel (labeled) akan melanjutkan pengulangan yang sedang terjadi dan dilanjuti ke pengulangan berikutnya dari pernyataan pengulangan yang diberi label (tanda). search: for( int i=0; i6; i++ ) { if(i==3 ){ continue search; } System.out.println(i); public class nested{ public static void main(String[]args){ for(int i=0;i4;i++){ for(int j=0;j5;j++){ System.out.print(j); } System.out.println(); } } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 27 } 4.4 Pernyataan Return Pernyataan return digunakan untuk keluar dari sebuah method. Pernyataan return memiliki dua bentuk: memberikan sebuah nilai, dan tidak memberikan nilai. Untuk memberikan sebuah nilai, cukup berikan nilai (atau ekspresi yang menghasilkan sebuah nilai) sesudah kata return. Contohnya, return ++count; atau return Hello; Tipe data dari nilai yang diberikan harus sama dengan tipe dari method yang dibuat. Ketika sebuah method void dideklariskan, gunakan bentuk return yang tidak memberikan nilai. Contohnya, return; 4.5 Nested Loop Nested Loop adalah suatu bentuk perulangan didalam perulangan,Perhatikan contoh berikut ini untuk memahaminya :
  • 28. MODUL 5 ARRAY/LARIK (1 Dimensi) dan (Multidimensi) A. Target Praktikum - Mahasiswa mengetahui struktur dasar Array - Mahasiswa mengetahui cara pengoperasian Array - Mahasiswa mampu menyelesaikan permasalahan terkait penggunaan Array B. Materi Dasar Dalam bab ini, kita akan mendiskusikan mengenai array dalam Java. Pertama, kita akan mendefinisikan apa yang dimaksud dengan array, kemudian kita juga akan mendiskusikan bagaimana mendeklarasikannya dan menggunakannya dalam Java. Array adalah suatu type data yang mampu diisi dengan lebih dari satu nilai. Dan untuk pengaksesan nilai pada array ini digunakan indeks atau berdasarkan letak nilai tersebut pada array. Yang harus anda perhatikan adalah bahwa data yang berada dalam suatu array mempunyai tipe yang sama. B.1 Array satu dimensi Yaitu array yang hanya mempunyai 1 baris yang didalamnya terdapat data yang mempunyai type sama. Atau dapat diartikan sejumlah data yang ditampung oleh suatu variable yang mempunyai type yang sama dalam satu baris dan satu kolom. 1. Pendeklarasian Array Array harus dideklarasikan seperti layaknya sebuah variabel. Pada saat mendeklarasikan array, anda harus membuat sebuah daftar dari tipe data, yang diikuti oleh sepasang tanda kurung [], lalu diikuti oleh nama identifier-nya. Sebagai contoh, int []usia; atau Anda dapat menempatkan sepasang tanda kurung [] sesudah nama identifier. Sebagai contoh, int usia[]; Setelah pendeklarasian array , kita harus membuat array dan menentukan berapa panjangnya dengan sebuah konstruktor. Proses ini di Java disebut sebagai instantiation (istilah dalam Java yang berarti membuat) M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 28
  • 29. Sebagai catatan bahwa ukuran dari array tidak dapat diubah setelah anda menginisialisasinya. Sebagai contoh, int ages[]; //deklarasi ages = new int[100]; //instantiate obyek Selain menggunakan sebuah pernyataan new untuk meng-instantiate array, Anda juga dapat mendeklarasikan, membangun, kemudian memberikan sebuah nilai pada array sekaligus dalam sebuah pernyataan. Sebagai contoh, boolean results[] ={ true, false, true, false }; double []grades = {100, 90, 80, 75}; String days[] = { “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”, “Sun”}; 2. Pengaksesan elemen array Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari array, Anda harus menggunakan indeks atau subscript. “ Nilai indeks selalu dalam tipe integer, dimulai dari angk a nol dan dilanjutkan ke angka berikutnya sampai akhir array. Sebagai catatan bahwa indeks didalam array dimulai dari 0 sampai dengan (ukuranArray-1).” Berikut ini adalah contoh kode untuk mencetak seluruh elemen didalam array. Dalam contoh ini digunakanlah pernyataan for loop, sehingga kode kita menjadi lebih pendek. public class ArraySample M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 29 { public static void main( String[] args ) { int[] ages = new int[100]; for( int i=0; i100; i++ ) { System.out.print( ages[i] ); } } }
  • 30. 3. Panjang Array Untuk mengetahui berapa banyak elemen didalam sebuah array, Anda dapat menggunakan atribut length dari array. Atribut ini akan mengembalikan ukuran dari array itu sendiri. Sebagai contoh, NamaArray.length Pada contoh sebelumnya, kita dapat menuliskannya kembali seperti berikut ini, public class ArraySample { public static void main( String[] args ) { int[] ages = new int[100]; for( int i=0; iages.length; i++ ) { System.out.print( ages[i] ); } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 30 } } B.2 Array Multidimensi Array multidimensi diimplementasikan sebagai array yang terletak di dalam array. Array multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah nama array. Sebagai contoh, // Elemen 512 x 128 dari integer array int[][] twoD = new int[512][128]; // karakter array 8 x 16 x 24 char[][][] threeD = new char[8][16][24]; // String array 4 baris x 2 kolom String[][] dogs = {{ terry, brown }, { Kristin, white }, { toby, gray}, { fido, black} }; Untuk mengakses sebuah elemen didalam array multidimensi, sama saja dengan mengakses array satu dimensi. Misalnya saja, untuk mengakses element pertama dari baris pertama didalam array dogs, kita akan menulis, System.out.print( c[0][0] );
  • 31. Kode diatas akan mencetak String “terry” di layar Contoh : public class contoh2d { int[][] A={{3,7,5},{2,8,6}}; public void cetak() { System.out.println( Matrik A: ); for(int i=0;iA.length;i++) { for(int j=0;jA[0].length;j++) { System.out.print(A[i][j]+ ); } System.out.println(); } } public static void main(String args[]) { contoh2d jm=new contoh2d(); jm.cetak(); } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 31
  • 32. MODUL 6 PERULANGAN LANJUTAN ( ALGORITMA SORTING ) A. Target Praktikum - Mahasiswa mampu menguasai berbagai macam algoritma sorting yaitu insertion sort, selection sort, buble sort. - Mampu mengimplementasikan berbagai macam algoritma sorting. B. Materi Dasar 1. Algoritma Sorting Sorting adalah proses menyusun elemen – elemen dengan tata urut tertentu dan proses tersebut terimplementasi dalam bermacam aplikasi. Pengaplikasian sorting banyak kita jumpai diberbagai aktifitas, missal mengurutkan NIM, Nama negara, Kota dan Lain sebagainya Ada beberapa macam algoritma sorting yang nantinya akan kita pelajari dalam praktikum ini misalnya : - Insertion Sort - Selection sort - Buble Sort Penjelasan mengenai keempat algoritma sorting bisa anda baca dibawah ini: 1.1 Insertion Sort Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan. Cara pengurutan dalam Insertion Sort: a. Membandingkan dua elemen data pertama dan mengurutkannya. b. Mengambil satu elemen data berikutnya dan membandingkannya dengan dua elemen data pertama yang telah terurut, kemudian mengurutkannya. Elemen data ketiga ini bisa diletakkan sebelum elemen data pertama, setelah elemen data kedua, atau disisipkan diantara elemen data pertama dan kedua. c. Mengulang langkah kedua hingga seluruh elemen data dalam daftar sudah diurutkan. Perhatikan contoh kode berikut ini : M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 32
  • 33. public class insertion { public static void main(String args[]) { int a[]={8,5,9,6,3,4,2,1,7,5}; for(int i=0;ia.length;i++) { int min=a[i]; int j=i; while((j0)(mina[j-1])) { a[j]=a[j-1]; j--; } a[j]=min; } // mencetak hasil for(int h=0;ha.length;h++) { System.out.println(a[h]+,); } } } 1.2 Selection Sort Algoritma sorting dengan selection sort merupakan pengurutan dengan cara mencari nilai terbesar atau terkecil dari sekumpulan nilai pada sebuah data. Pengururutan ini mempunyai jalan sebagai berikut : a. Mencari nilai max atau min (opsional, pilih salah satu) pada semua elemen array dan pertukarkan dengan elemen array yang seharusnya (min di pertama atau max di akhir) . kemudian elemen array tersebut di isolasi (tidak diganggu gugat). b. Temukan elemen array bernilai min/max dari array index kedua dari awal jika minimum atau kedua dari akhir jika maksimum, kemudian pertukarkan dengan elemen array di posisi (indeks) kedua (dari awal atau dari akhir tergantung penggunaan maksimum atau minimum). Lalu isolasi elemen array tersebut ditambah elemen sebelumnya. c. Ulangi langkah di atas untuk elemen berikutnya hingga elemen terakhir. Perhatikan contoh kode berikut ini : M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 33
  • 34. public class selection { public static void main(String args[]) { int a[]={8,5,9,6,3,4,2,1,7,5}; int i=0; while(ia.length-1){ int tmp=i; for(int j=i+1;ja.length;j++){ if(a[j]a[tmp]) tmp=j; } int hlp=a[i]; a[i]=a[tmp]; a[tmp]=hlp; i++; } // mencetak hasil for(int h=0;ha.length;h++){ System.out.println(a[h]+,); } } } 1.2 Bubble Sort Bubble sort merupakan metode yang memiliki proses pengurutan yang diawali dengan membandingkan elemen pertama guna memperoleh elemen terbesar. Kemudian elemen tersebut ditempatkan pada posisi terakhir. Berikut ini urutan dalam Bubble Sort : a. Lakukan pengulangan (pass) pada array, kemudian tukar elemen yang bersebelahan jika diperlukan (perbandingan nilainya tidak sesuai); jika tidak ada pertukaran nilai maka array sudah terurut. b. . Dalam pass pertama, temukan elemen dengan nilai tertinggi (maksimal) dalam array dan tukarkan dengan elemen di sebelah kanannya dan seterusnya sampai dengan mencapai posisinya di ujung array sebelah kanan. M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 34
  • 35. c. Kemudian dalam pass kedua, nilai tertinggi kedua dalam array akan ditempatkan dalam posisinya (di sebelah kiri elemen dengan nilai tertinggi/maksimal). d. Teruskan untuk pass ketiga dan seterusnya sampai pass n-1 e. Jika sebelum pass n-1 sudah tidak ada pertukaran data maka pertukaran langsung dihentikan. Perhatikan Kode Berikut : public class bubble { public static void main(String args[]) { int a[]={8,5,9,6,3,4,2,1,7,5}; for(int i=1;ia.length;i++) { for(int h=0;ha.length-1;h++) { if(a[h+1]a[h]) { int tmp=a[h+1]; a[h+1]=a[h]; a[h]=tmp; } } } // mencetak hasil for(int h=0;ha.length;h++) { System.out.println(a[h]+,); } } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 35
  • 36. MODUL 7 EXCEPTION HANDLING DAN METHOD A. Target Praktikum - Mendefinisikan exception - Menangani exception menggunakan blok try-catch-finally - Memahami Tentang Method dan penggunaannya didalam pemrograman - Mampu mengaplikasikan method dalam pembuatan program. B. Materi Dasar 1. ExceptionHandling Dalam bagian ini, kita akan mempelajari teknik yang dipakai dalam Java dalam menangani kondisi yang tidak bisaa dalam menjalankan operasi normal dalam program. Teknik ini dinamakan exception handling. - Event yang terjadi ketika suatu kesalahan terjadi saat program dijalankan. - Sering digunakan untuk akses sumberdaya non memori seperti akses file dan koneksi database 1.1 Apa itu Exception? Exception adalah sebuah peristiwa yang menjalankan alur proses normal pada program. Peristiwa ini bisaanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program kita berakhir tidak normal. 1.2 Menangani Exception Untuk menangani exception dalam Java, kita gunakan blok try-catch-finally. Apa yang kita lakukan dalam program kita adalah kita menempatkan pernyataan yang mungkin menghasilkan exception dalam blok ini. Bentuk umum dari blok try-catch-finally adalah, Try { //tulis pernyataan yang dapat mengakibatkan exception //dalam blok ini } catch( exceptionType1 varName1 ) { //tulis aksi apa dari program Anda yang dijalankan jika ada //exception tipe tertentu terjadi M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 36
  • 37. } catch( exceptionTypen varNamen ){ //tulis aksi apa dari program Anda yang dijalankan jika ada //exception tipe tertentu terjadi } finally{ //tambahkan kode terakhir di sini } Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch. Kode dalam blok finally selalu di-eksekusi. Berikut ini adalah aspek kunci tentang sintak dari konstruksi try-catch-finally: - Notasi blok bersifat perintah - Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok finally. - Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan blok try, dan diatas urutan - Blok try harus diikuti oleh paling sedikit satu blok catch ATAU satu blok finally, atau keduanya. - Setiap blok catch mendefinisikan sebuah penanganan exception. Header dari blok catch harus membawa satu argumen, dimana exception pada blok tersebut akan ditangani. 1.3 Contoh Exception a. ArithmeticException public class cobaException { public static void main(String args[]) { int bil = 10; System.out.println(bil/0); } } Program diatas akan memunculkan outpur error sebagai berikut : M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 37
  • 38. Disana muncul adanya kesalahan aritmetika, pesan kesalahan tersebut tampil karena adanya proses perhitungan yang salah. karena di java secara otomatis akan menangkap exception ketika ada kode program yang salah. b. Struktur Blok Try Catch try{ kode program yang mungkin menghasilkan exception } catch(Exception xx){ } catch(Exception xx){ } Contoh Penggunaan Blok Try-Catch public class contoh_try { public static void main(String args[]){ try{ int bil = 10; System.out.println(bil/0); } catch(Exception xx){ System.out.println(xx.getMessage()); } } } 2. Method/Function 2.1 Konsep Dasar - Fungsi adalah bagian dari kode program yang mempunyai tugas spesifik. - Reusable : Bisa dipanggil ke program utama atau fungsi yg lain lebih dari 1 kali bila dibutuhkan. - Sebuah fungsi bisaanya digunakan untuk menangani suatu proses tertentu yang ada di dalam sebuah program. Dan bila ada kesalahan cukup memperbaiki bagian method yang salah 2.2 Bentuk penulisan fungsi/method Kita bisa menuliskan fungsi atau method dengan beberapa cara, dan method juga mempunyai beberapa macam tipe yaitu : void , string , double , integer M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 38
  • 39. Dari beberapa tipe method diatas semua harus mempunya nilai kembalian (return typedata) kecuali method yang bertipe void. Dalam beberapa kasus kita membutuhkan suatu method yang mempunyai nilai kembalian, misalnya untuk penanganan proses tertentu yang membutuhkan sebuah nilai untuk digunakan proses selanjutnya, missal ingin menghitung bangun seperti tabung, kerucut dimana kedua bangun tersebut mengandung lingkaran, maka penanganan perhitungan lingkaran bisa ditangan oleh satu method dengan nilai kembalian, kemudian hasil perhitungan lingkaran digunakan untuk menghitung volume tabung dan kerucut. Berikut ini cara untuk menuliskan fungsi/method : 1. method yang tidak mempunyai parameter void hitung() { // Statement atau perintah yang dikerjakan } 2. method yang mempunyai parameter void hitung2(int a,int b) { // Method yang mempunyai parameter // Statement atau perintah yang dikerjakan } 2.3 Contoh Aplikasi a. Program yang tidak menggunakan fungsi/method public class faktorial { public static void main(String args[]){ int nilai=1; int data=4; if(data==0||data==1){ nilai=1; } else{ for(int i=1; i=data; i++){ nilai*=i; } } System.out.println(data+ ! = +nilai); } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 39
  • 40. b. Program yang menggunakan fungsi/method public class faktorial5 { public void test(int data){ // Fungsi atau method int nilai=1; if(data==0||data==1){ nilai=1; } else{ for(int i=1; i=data; i++){ nilai*=i; } } System.out.println(data+! = +nilai); } public static void main(String args[]){ faktorial5 f5=new faktorial5(); f5.test(4); f5.test(5); } } Dapat anda perhatikan bahwa program “a” yang tidak menggunakan fungsi, maka proses yang berjalan hanya sekali dan angka yang dihitung nilai faktorialnya cenderung statis. Berbeda dengan program “b” yang menggunaka fungsi, proses yang berjalan bisa lebih satu kali, yaitu kita bisa melakukan pemanggilan fungsi tersebut secara berulang dengan nilai angka yang parameter faktorialnya dapat diubah dengan lebih dinamis. 2.4 Function Rekursif Sebuah fungsi yang menggunakan dirinya sendiri untuk mengerjakan suatu tugas. Rekursif adalah sebuah metodologi yang penting karena beberapa algoritma bisa diekspresikan dengan lebih baik menggunakan rekursif. Contoh : public class metodx { public void tampilString(int sisa) { M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 40
  • 41. if(sisa0) { System.out.println(Belajar Rekursif Java); tampilString(sisa-1); } } public static void main(String args[]) { metodx r1=new metodx(); r1.tampilString(5); } } Contoh : Faktorial Dengan Rekursif public class FaktorialRekursif { public int FaktorialRekursif(int n) { int hasil=0; if(n==0) hasil=1; else hasil=n*FaktorialRekursif(n-1); return hasil; } public static void main(String args[]) { FaktorialRekursif fr=new FaktorialRekursif(); int data=fr.FaktorialRekursif(5); System.out.println(5 ! = +data); } } 3. Object Oriented Programing(OOP/Pemrograman Berorientasi Objek) Java Merupakan salah satu bahasa pemrograman yang berorientasi objek. OOP Atau Object Oriented Programing Adalah merupakan model pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam model pemrograman ini dibungkus dalam objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Model pemrograman ini merupakan model pemrograman yang mudah untuk dikembangkan dan di maintenance. Ada berbagai macam konsep yang dipakai dalam model pemrograman berbasis OOP diantaranya : Kelas, Objek, Abstrak, Polimorfisme, Enkapsulasi Dalam praktikum dasar pemrograman ini, kita akan pelajari Kelas dan Objek serta beberapa macam akses modifier. M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 41
  • 42. 3.1 Kelas Kelas adalah sekumpulan data dan fungi dalam satu kesatuan untuk tujuan tertentu. Dalam contoh misalnya ada kelas “pensil” dimana kelas pensil ini merupakan turunan dari kelas alat_tulis, perhatikan kode berikut : public class alat_tulis{ protected String nama; protected String merek; String nama(String nm){ nama=nm; return nama; } String merek(String mrk){ merek=mrk; return merek; } } public class pensil extends alat_tulis{ String harga; String harga(String hrg){ harga=hrg; return harga; } public static void main (String[]args) { pensil pl=new pensil(); pl.nama=Pensil; pl.merek=Standart; pl.harga=5000; System.out.println(Nama +pl.nama); System.out.println(Merek +pl.merek); System.out.println(Harga +pl.harga); } } Dari Kode tersebut bias anda lihat kelas pensil bias memberikan nilai pada nama, merek padahal didalam kelas tersebut tidak mempunyai variabel itu, hal ini dikarenakan kelas pensil tersebut merupakan kelas turunan dari kelas alat tulis. 3.2 Objek Objek bisa kita ibaratkan sebagai pembungkus suatu fungsi,data yang ada dalam pemrograman berorientasi objek. Contohnya adalah setiap komponen, variabel, fungsi di dalam java selalu diwakili oleh sebuah objek, perhatikan kode berikut : Variabel : int[]angka=new int[5] angka merupakan objek variabel Kelas : pensil pl =newm pensil(); pl merupakan objek kelas 3.3 Akses Modifier Akses modifier merupakan hak akses yang diberikan kepada data/variabel, fungsi atau kelas dalam pemrograman berorientasi objek. Ada beberapa macam akses modifier yang harus anda ketahui diantaranya : M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 42
  • 43. 1. Public : Akses modifier yang mengijinkan semua kelas mengakses var,fungsi yang memliki tipe akses modifier ini. 2. Private : Akses modifier yang hanya bias diakses dalam satu kelas 3. Protected : Akses modifier yang hanya mengijinkan kelas turunan untuk mengakses var,fungsi yang memliki tipe akses modifier ini. 4. Static : Bukan akses modifier, Sebuah variabel atau fungsi yang mempunyai nilai kembalian yang nilaix akan tetap terjaga selama tidak ada perubahan nilai dalam var, dan fungsi tersebut selama aplikasi berjalan. public class alat_tulis public class pensil extends alat_tulis{ { String harga; static private String info=Informasi String harga(String hrg){ Alat Tulis; protected String nama; protected String merek; String nama(String nm){ nama=nm; return nama; } String merek(String mrk){ merek=mrk; return merek; } } harga=hrg; return harga; } public static void main (String[]args){ pensil pl=new pensil(); pl.nama(Pensil); pl.merek(Standart); pl.harga(5000); System.out.println(Nama +pl.info);// Menampilkan variabel Static System.out.println(Nama +pl.nama); System.out.println(Merek +pl.merek); System.out.println(Harga +pl.harga); } } Dari contoh diatas jika anda runnig programnya maka variabel info di kelas alat_tulis tidak dapat diakses oleh kelas pensil, karena variabel tersebut mempunyai akses modifier private. M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 43
  • 44. MODUL 8 DASAR GUI (Graphical User Interface) A. Target Praktikum - Memahami persamaan dan perbedaan antara AWT dan Swing - Perbedaan antara komponen dan kontainer. - Mendesain aplikasi GUI menggunakan AWT. - Mendesain aplikasi GUI menggunakan Swing. - Menjelaskan tentang flow layout, border layout, dan grid layout dalam komponen GUI - Membuat tampilan yang komplek dalam mendesain aplikasi GUI. B. Materi Dasar Tanpa mempelajari tentang grapichal user interface (GUI) API, Anda masih tetap bisa membuat suatu program. Tetapi, program Anda akan kelihatan tidak menarik dan tidak nyaman digunakan bagi para user. Memiliki GUI yang baik dapat memberi efek pada penggunaan aplikasi. Java menyediakan banyak tool seperti Abstract Windowing Toolkit dan Swing untuk mengembangkan aplikasi GUI yang interaktif. AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat aplikasi Java dan applet. Tidak seperti beberapa komponen AWT yang menggunakan native code, keseluruhan Swing ditulis menggunakan bahasa pemrograman Java. Swing menyediakan implementasi platform-independent dimana aplikasi yang dikembangkan dengan platform yang berbeda dapat memiliki tampilan yang sama. Begitu juga dengan AWT menjamin tampilan look and feel pada aplikasi yang dijalankan pada dua mesin yang berbeda menjadi terlihat sama. Swing API dibangun dari beberapa API yang mengimplementasikan beberapa jenis bagian dari AWT. Kesimpulannya, komponen AWT dapat digunakan bersama dengan komponen Swing. 1. Beberapa komponen AWT Berikut ini adalah daftar dari kontrol AWT. Kontrol adalah komponen seperti tombol atau textfield yang mengijinkan user untuk berinteraksi dengan aplikasi GUI. Berikut ini semua subclass dari class Components. Berikut adalah contoh GUI dengan menggunakan fitur AWT (Abstract Windowing Toolkit): M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 44
  • 45. import javax.swing.*; import java.awt.*; class cekBok extends JFrame { Checkbox cb1 = new Checkbox(Cex Box); TextField txt = new TextField(Text Field); Button bt = new Button(Tombol/Button); cekBok() { super(PROGRAM GUIKU); setLocation(200,100); setSize(400,350); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void objek() { getContentPane().setLayout(null); getContentPane().add(cb1); getContentPane().add(txt); getContentPane().add(bt); cb1.setBounds(30,90,150,20); txt.setBounds(30,120,150,20); bt.setBounds(30,150,150,20); setVisible(true); } public static void main(String args[]) { cekBok ZZ=new cekBok(); ZZ.objek(); } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 45 } 2. Layout Manager Posisi dan ukuran suatu komponen ditentukan oleh layout manager. Layout manager mengatur tampilan dari komponen di dalam kontainer. Berikut ini beberapa layout manager
  • 46. yang terdapat di dalam Java. 1.FlowLayout 2.BorderLayout 3.GridLayout Layout manager dapat diatur men dapat ditulis sebagai berikut. setLayout(LayoutManager mgr) 2.1 FlowLayout enggunakan method setLayout dari class Container Cara meletakkan komponen dan dari atas ke bawah, menggunakan editor kata p Berikut adalah contoh pengg import java.awt.*; class FlowLayoutDemo ex public static void main(S ner. Method ini en dari FlowLayout Manager dimulai dari kiri ke ka h, dimulai dari pojok kiri atas. Seperti pada a pada umumnya. nggunaan FlowLayout : extends Frame { n(String args[]) { d new FlowLayoutDemo(); lowLayout()); ONE)); TWO)); THREE)); ); FlowLayoutDemo fld = fld.setLayout(new Flow fld.add(new Button(O fld.add(new Button(T fld.add(new Button(T fld.setSize(100, 100); fld.setVisible(true); } } Berikut ini tampilan yang di M o d u l D a s p r o - dihasilkan : kanan ada saat Anda mengetik C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 46
  • 47. 2.2 BorderLayout BorderLayout membagi ko dan tengah. Setiap kompone membentuk jalur horizonta region tengah berada pada default untuk object Window Berikut adalah contoh pengg import java.awt.*; class BorderLayoutDemo public static void main(S kontainer menjadi lima bagian diantaranya utar onen dimasukkan ke dalam region yang spesifik. R ntal sedangkan region timur dan barat memben da perpotongan jalur horizontal dan vertikal. Tam ow, termasuk object dari subclass Window yaitu ti nggunaan BorderLayout : mo extends Frame { n(String args[]) { bld = new BorderLayoutDemo(); BorderLayout(10, 10)); //may remove (NORTH), BorderLayout.NORTH); (SOUTH), BorderLayout.SOUTH); (EAST), BorderLayout.EAST); (WEST), BorderLayout.WEST); (CENTER), BorderLayout.CENTER); 0); BorderLayoutDemo bl bld.setLayout(new Bo bld.add(new Button(N bld.add(new Button(S bld.add(new Button(E bld.add(new Button(W bld.add(new Button(C bld.setSize(200, 200); bld.setVisible(true); } } Berikut ini tampilan yang di dihasilkan : 2.3 Null Layout/Tanpa Layout out M o d u l D a s p r o - tara, selatan, timur, barat, Region utara dan selatan entuk jalur vertikal. Dan ampilan ini adalah bersifat u tipe Frame dan Dialog. C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 47
  • 48. Jika Anda memilih untuk tidak menggunakan layout manager, Anda dapat mengisi null sebagai argumen untuk method ini. Tetapi selanjutnya, Anda akan mengatur posisi elemen secara manual dengan menggunakan method setBounds dari class Components. setBounds(int x, int y, int width, int height) Method ini mengatur posisi berdasarkan pada argumen x dan y, dan ukuran berdasarkan argumen width dan height. Berikut adalah contoh penggunaan NullLayout : import javax.swing.*; import java.awt.*; class cekBok extends JFrame { Checkbox cb1 = new Checkbox(Pilih A); Checkbox cb2 = new Checkbox(Pilih B”); Checkbox cb3 = new Checkbox(Pilih C); cekBok() { super(PROGRAM GUIKU); setLocation(200,100); setSize(400,350); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void objek() { getContentPane().setLayout(null); getContentPane().add(cb1); getContentPane().add(cb2); getContentPane().add(cb3); cb1.setBounds(30,90,150,20); cb2.setBounds(30,120,150,20); cb3.setBounds(30,150,150,20); setVisible(true); } public static void main(String args[]) { M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 48
  • 49. cekBok ZZ=new cekBok ZZ.objek(); } } Berikut ini tampilan yang di 3. Komponen Swing ok(); dihasilkan : Seperti pada package AW WT, package dari Swing menyediakan banyak but dapat ditemukan di javax.swing. Perbedaan itulis menyeluruh menggunakan Java. Kesimp class dari package Swing yang mempunyai tampil altform yang berbeda. Lebih dari itu, Swing menye oser dan option pane. GUI milik Swing hampir sama persis dengan kom ada penamaan komponen. Pada dasarnya, nama T tetapi dengan tambahan huruf J pada prefixnya alah button class. Sedangkan pada Swing, na adalah daftar dari komponen Swing. aplikasi GUI. Package tersebut adalah komponen Swing ditu ditulis menggunakan banyak cla sama meski dijalankan pada palt lebih menarik seperti color choos Nama dari komponen GU Perbedaan jelas terdapat pada dengan nama komponen AWT t komponen dalam AWT adala menjadi Jbutton class. Berikut ad M o d u l D a s p r o - ak class untuk membuat n utama antara keduanya impulannya, program GUI pilan look and feel yang nyediakan komponen yang mponen GUI milik AWT. a komponen Swing sama ya. Sebagai contoh, satu nama komponen tersebut C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 49
  • 50. Berikut ini contoh sederhana menggunakan komonen swing : import javax.swing.*; import java.awt.*; import java.awt.event.*; public class fil extends JFrame { JTextArea nama=new JTextArea(10,10); JButton bt=new JButton(Copy); JTextArea txnama=new JTextArea(10,10); fil() { super(INI ADALAH FORM); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 50
  • 51. setLocation(200,300 setSize(400,300); setDefaultCloseOpe setVisible(true); } void tampilan() { getContentPane().a nama.append(nam getContentPane().a getContentPane().a txnama.setBackgrou bt.addActionListene { public void actionPe 00); peration(JFrame.EXIT_ON_CLOSE); ).add(nama); ma kamu siapa); ).add(bt); ).add(txnama); round(Color.LIGHT_GRAY); ner(new ActionListener() Performed(ActionEvent e) { txnama.append(na } }); getContentPane().s setVisible(true); } public static void ma fil f=new fil(); f.tampilan(); } } Output yang dihasilkan (nama.getSelectedText()); ).setLayout(new FlowLayout()); M o d u l D a s p r o - ain(String args[]) { C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 51
  • 52. Perlu diperhatikan pada package java.awt masih saja diimpor karena layout manager yang digunakan terdapat pada package tersebut. Juga, memberi judul pada frame dan mengepack komponen di dalam frame dapat juga dilakukan untuk frame AWT. 3.1 Membuat Menu Sederhana JMenu adalah komponen yang berupa kumpulan fungsi yang berhubungan dengan fitur-fitur yang terdapat pada suatu Aplikasi. Dibagi atas beberapa yaitu: 1 JMenuBar adalah menu yang didalamnya yang bersifat klik down atau apabila menu tersebut di klik maka akan muncul pilihan menu. 2 JMenu adalah komponen yang terdapat pada menuBar dimana ia merupakan objek yang ada pada menubar. 3 JMenuItem adala menu yang berguna untuk menambah item (objek/pilihan) menu pada menu. Contoh Aplikasi Yang menggunakan menu DI dalamnya : import javax.swing.*; import java.awt.*; import javax.swing.table.*; import java.awt.event.*; import java.sql.*; class menunya extends JFrame { JMenuBar mb=new JMenuBar(); JMenu mn=new JMenu(File); JMenu mn2=new JMenu(Open); JRadioButton bt=new JRadioButton(buku); JMenuItem mnt=new JMenuItem(Close); JMenuItem unta=new JMenuItem(Unta); menunya() { super(PROGRAM MENGHITUNG ZAKAT); setLocation(200,100); setSize(400,350); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void objek() { getContentPane().add(mb,BorderLayout.NORTH); mb.add(mn); mn2.add(bt); mn.add(mn2); mn.add(mnt); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 52
  • 53. mn.add(unta); mb.setBounds(10,10,100,30); setVisible(true); } public static void main(String args[]) { menunya ZZ=new menunya(); ZZ.objek(); } } Berikut Adalah output Yang Dihasilkan : 4. Menambahkan Atribut Warna Dan Gambar 4.1 Menambahkan Warna Untuk menambahkan warna pada komponenn windows yang kita buat kita perlu menambahkan statement yang di dalam java di kenali sebagai penambah atribut warna. Contoh ; “ getContentPane().setBackground(Color.GREEN); “ ini untuk memberikan warna pada frame yang kita buat. “ bt.setBackground(Color.RED); “ Untuk memberikan warna pada background komponen komponen lain selain frame dimana bt adalah nama dari pembentukan objek yang dibuat berdasarkan komponen tersebut. “ bt.setForeground(Color.GREEN); “ Untuk memberikan warna pada tulisan yang ada pada komponen tersebut. Penambahan warna berdasarkan statement diatas hanya berlaku untuk warna sederhana. “ bt.setForeground(new java.awt.Color(0, 0, 153)); “ “ bt.setBackground(new java.awt.Color(1,9,123)); “ M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 53
  • 54. Adalah untuk memberikan warna yang dapat kita sesuaikan tingkat warnanya berdasarkan warna R,G,B. Contoh Menambahkan Atribut Warna Dari Komponen Yang Telah Kita Buat : import java.awt.*; import java.awt.event.*; public class area extends JFrame { JTextArea nama=new JTextArea(10,10); JButton bt=new JButton(Copy); JTextArea txnama=new JTextArea(10,10); area(){ super(INI ADALAH FORM); setLocation(200,300); setSize(400,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } void tampilan() { getContentPane().add(nama); nama.append(nama kamu siapa); getContentPane().add(bt); bt.setForeground(new java.awt.Color(0, 0, 153)); bt.setBackground(new java.awt.Color(1,9,13)); bt.setBackground(Color.GRAY); bt.setForeground(Color.GREEN); getContentPane().add(txnama); txnama.setBackground(Color.LIGHT_GRAY); bt.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { txnama.append(nama.getSelectedText()); } }); getContentPane().setLayout(new FlowLayout()); setVisible(true); } public static void main(String args[]){ area f=new area(); f.tampilan(); } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 54
  • 55. 4.2 Menambahkan Gambar Untuk menambahkan gambar pada komponen windows kita bisa menggunakan label yang didalamnya kita selipkan statement (“new ImageIcon(e.jpg) ”) untuk memanggil gambar tersebut. Syarat untuk menambahkan sebuah gambar yang ditampilkan kedalam frame, gambar tersebut harus berada didalam folder yang satu dengan letak source atau kelas tersebut diletakkan (disimpan). Contoh Menampilkan gambar ke dalam aplikasi kita dengan menggunakan JLabel : import javax.swing.*; import java.awt.*; import java.awt.event.*; public class gambar extends JFrame { JLabel lb=new JLabel(new ImageIcon(e.jpg)); gambar(){ super(INI ADALAH FORM); setLocation(200,300); setSize(400,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } void tampilan() { getContentPane().add(lb); getContentPane().setLayout(new FlowLayout()); setVisible(true); } public static void main(String args[]){ gambar f=new gambar(); f.tampilan(); } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 55
  • 56. MODUL 9 EVENT HANDLING/ACTION PROGRAM A. Target Praktikum - Menerangkan komponen-komponen delegation event model - Mengerti bagaimana delegation event model bekerja - Menciptakan aplikasi GUI yang berinteraksi dengan user - Mendiskusikan manfaat dari class-class adapter - Mendiskusikan keuntungan-keuntungan dari menggunakan inner dan anonymous B. Materi Dasar Pada bab ini, Anda akan belajar bagaimana mengendalikan events triggered ketika user berinteraksi dengan aplikasi GUI Anda. Setelah menyelesaikan modul ini, Anda akan dapat mengembangkan aplikasi GUI yang dapat merespon interaksi user. 1. Event Model Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi dari user. Untuk memahami model, pertama-tama mari kita pelajari melalui tiga komponen utamanya. - Event Source Event source mengacu pada komponen GUI yang meng-generate event. Sebagai contoh, jika user menekan tombol, event source dalam hal ini adalah tombol. - Event Listener/Handler Event listener menerima berita dari event-event dan proses-proses interaksi user. Ketika tombol ditekan, listener akan mengendalikan dengan menampilkan sebuah informasi yang berguna untuk user. - Event Object Ketika sebuah event terjadi (misal, ketika user berinteraksi dengan komponen GUI), sebuah object event diciptakan. Object berisi semua informasi yang perlu tentang event yang telah terjadi. Informasi meliputi tipe dari event yang telah terjadi, seperti ketika mouse telah di-klik. Ada beberapa class event untuk kategori yang berbeda dari user action. Sebuah event object mempunyai tipe data mengenai salah satu dari class ini. 2. Event Listeners M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 56
  • 57. Event listeners adalah class ya menunjukkan beberapa listener in Event Listeners Deskrip ActionListener Bereak yang mengimplementasikan interfaces TypeL r interfaces yang biasanya digunakan. kripsi Method aksi atas perubahan se atau atau keyboard. mouse MouseListener Bereak aksi atas pergerakan se. mouse. MouseMotionListener Interfac rface Mouse Motion ener mendukung seListener. Menyediakan hod-method yang akan antau pergerakan se,seperti drag dan indahan mouse. Listene Mouse method meman mouse, pemind Pada praktikum ini kita hanya ak aksi dari mouse ketika di klik dan anda kembangan sesuai dengan k Listener. Tabel di bawah rformed(ActionEvent e) eClicked(MouseEvent e) eEntered(MouseEvent e) eExited(MouseEvent e) ePressed(MouseEvent e) eReleased(MouseEvent e) seDragged(MouseEvent e) seMoved(MouseEvent e) akan membahas Event ActionListener yaitu penan n kreatifitas anda. 1.1 ActionListener Pada Mouse Berikut contoh Aplikasi dengan a use n action listener : import java.awt.*; import java.awt.event.* import javax.swing.*; t.*; public class combo { public static void main { JFrame frame = new final JLabel lb=new J final String [] items = final JComboBox co JPanel pn=new JPa ain(String[] args) ew JFrame(); w JLabel(); s { roti , Madu }; comboBox = new JComboBox(items); anel(); M o d u l D a s p r o - public void actionPerfo - public void mouseC - public void mouseE - public void mouseE - public void mouseP - public void mouseR - public void mouseD - public void mouseM nanganan reaksi ketika ada vent yang lainnya silahkan ketika keyboard di tekan, sedangkan untuk eve C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 57
  • 58. frame.add(pn,BorderLayout.WEST); pn.add(comboBox,BorderLayout.CENTER); pn.add(lb,BorderLayout.NORTH); comboBox.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent ae) { String mn=(String)comboBox.getSelectedItem(); lb.setText(mn); } }); frame.setSize(200, 200); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); frame.setVisible(true); } } 1.2 ActionListener Pada Keyboard Berikut contoh Aplikasi dengan action listener : import javax.swing.*; import java.awt.*; import java.awt.event.*;//Package untuk penanganan event (aksi reaksi) class Event_Button_Key extends JFrame { JButton m=new JButton(TEKAN KEY 1,2,3,4); JLabel tulisan = new JLabel(UKURAN FRAME AKAN BERUBAH); Event_Button_Key() { setTitle(INI EVENT PADA BUTTON); setSize(400,200); setLocation(200,100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void komponen() { getContentPane().setLayout(new FlowLayout()); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 58
  • 59. getContentPane().add(m); getContentPane().add(tulisan); setVisible(true); } void reaksi(){ m.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e){ if(e.getKeyCode()==e.VK_1){ setSize(300,500); } if(e.getKeyCode()==e.VK_2){ setSize(200,100); } if(e.getKeyCode()==e.VK_3){ setSize(100,10); } if(e.getKeyCode()==e.VK_4){ setSize(900,200); } } }); } public static void main(String []args){ Event_Button_Key eb=new Event_Button_Key(); eb.komponen(); eb.reaksi(); } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 59
  • 60. MODUL 10 PEMROGRAMAN DATABASE MENGGUNAKAN MYSQL A. Target Praktikum - Mahasiswa mengetahui struktur dasar pemrograman database. - Mahasiswa mengetahui cara pengoperasian simpan, edit, cari dan hapus suatu data dalam database. - Mahasiswa mampu menyelesaikan permasalahan menggunakan pemrograman database. B. Materi Dasar 1. Data Base Data Base merupakan sebuah tempat untuk menyimpan data secara permanent ke dalam media penyimpanan / memori sekunder . Agar dapat terkoneksi ke MySQL diperlukannya library tambahan untuk driver JDBC. Silakan download library tersebut di situs web mysql.com, anda akan memperoleh file mysql-connector-java- 5.1.8.tar. Kemudian ekstrak file tersebut. Salah satu hasil ekstraksinya adalah file mysql-connector-java- 5.1.8-bin.jar dan inilah library driver JDBC MySQL yang dimaksud. Salin file ini ke direktori C:Program FilesJavajre6libext atau ke folder lain sesuai dengan lokasi instalasi JRE. 2. JDBC (Java Database Connectivity) - Suatu interface pemrograman antara program aplikasi dan DBMS - JDBC berbentuk API - Menggunakan perintah SQL untuk memberi perintah ke DBMS 2.1 JDBC API (Aplication Program Interface) - Terdiri dari sejumlah class dan interface yang ditulis dalam bahasa Java - Menyediakan API standard sebagai alat bantu bagi pembuat program - Memberikan kemungkinan untuk menulis aplikasi database dengan menggunakan semua Java API - Kelebihan 1. Dapat mengakses sembarang sumber data Sybase, Oracle atau Access dan lain-lain tergantung dengan jenis JDBC yang dipakai, 2. Dapat berjalan pada sembarang platform yang mempunyai Java Virtual Machine(JVM). - Tugas utama JDBC 1. Membangun sebuah koneksi ke sumber data (data source). 2. Mengirim statement ke sumber data. 3. Mengeksekusi hasil dari statement tersebut M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 60
  • 61. 2.2 Menggunakan JDBC Berikut Tahapan yang dilakukan untuk menggunakan JDBC : import java.sql.*; /** * * @author Gianto-echa */ public class koneksi_database { Connection connection=null; void Koneksi() { try{ String connectionURL = jdbc:mysql://localhost/coba; String username = root; String password = root; Class.forName(com.mysql.jdbc.Driver); connection= DriverManager.getConnection(connectionURL, username , password ); System.err.println(Sukses Koneksi); } catch(Exception ex){ System.err.println(Tidak Berhasil Koneksi); System.exit(1); } } public static void main(String args[]){ koneksi_database kb=new koneksi_database(); kb.Koneksi(); } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 61 } Setelah anda ketikkan Kode tersebut, anda buat sebuah database dengan nama coba, kemudian compile dan jalankan, maka output yang akan dihasilkan adalah sebagai berikut:
  • 62. Berikut penjabaran dari kelas koneksi_database untuk database, sesuai dengan kode diatas, - Pemanggilan Class Driver Class.forName(com.mysql.jdbc.Driver); Berikut bebrapa kode pemangilan class driver untuk berbagai macam database : • Oracle : Class.forName(“oracle.jdbc.OracleDriver”); • Sybase: Class.forName(“com.sybase.jdbc.SybDriver”); • ODBC: Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); • Mysql : Class.forName(com.mysql.jdbc.Driver); - Menentukan Lokasi Database Server Untuk menentukan lokasi database server untuk mysql, anda gunakan kode berikut ini : String connectionURL = jdbc:mysql://localhost/alumni ; 3. Perintah SQL Structured Query Language (SQL) telah diakui sebagai bahasa standart untuk mengakses dan manipulasi database. Pada pembahasan kali ini kita akan tunjukkan beberapa intruksi SQLdan dibedakan menjadi 2 macam perintah yaitu: 3.1 DML (Data manipulation Language) Peritah DML adalah perintah query yang digunakan untuk memanipulasi data pada suatu database. Berikut perintah yang ada pada DML, a. Insert insert into NamaTabel values('+field_1+','+Field_2+','+…+','+Field_ke_n+');; Contoh : Dalam Contoh Ini Kita Akan membuat sebuah database sederhana dengan nama coba, kemudian di dalamnya kita buat sebuah table dengan nama mahasiswa dengan struktur sebagai berikut : Nama Field Type (Length) Nim Varchar(12) Nama Varchar(40) Alamat Varchar(70) Kemudian Anda Buat Tampilan GUI Seperti Berikut, dengan nama kelas Database : M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 62
  • 63. Dengan property sebagai berikut : Komponen Label Nama Objek Nim (JTextField) txtnim Nama (JTextField) txtnama Alamat (JTextArea) txtalamat Setelah itu anda anda tambahkan fungsi untuk koneksi seperti berikut : void Koneksi(){ try{ String connectionURL = jdbc:mysql://localhost/coba; String username = root; String password = root; Class.forName(com.mysql.jdbc.Driver); con= DriverManager.getConnection(connectionURL, username , password ); System.err.println(Sukses Koneksi); } catch(Exception ex) { System.err.println(Tidak Berhasil Koneksi); System.exit(1); } } Anda Panggil Fungsi Koneksi Tersebut Kedalam Method/Fungsi Utama dari aplikasi anda seperti berikut : M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 63
  • 64. public static void main(String args[]) { Database db2=new Database(); db.Koneksi(); } Setelah itu anda buat sebuah fungsi dengan nama simpan() kemudian anda ketikkan kode berikut ini : void simpan(){ try { Statement statement = con.createStatement(); String sql=insert into mahasiswa values('+txtnim.getText()+','+txtnama.getText()+','+txtalamat.getText()+');; statement.executeUpdate(sql); statement.close(); JOptionPane.showMessageDialog(null,Berhasil disimpan); } catch(Exception ex){ JOptionPane.showMessageDialog(null,nim data sudah ada); System.err.print(ex); } } Anda Buat Sebuah Fungsi/Method dengan nama aksi() Kemudian anda panggil fungsi tersebut pada method aksi ketika tombol simpan di klik, seperti berikut ini : void aksi() { btsimpan.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { simpan(); } }); } b. Select M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 64
  • 65. Pernyataan Select digunakan untuk mengambil data dari table dalam database sesuai dengan kriteria yang ditentukan. Berikut ini adalah conton perintah Select: SELECT * FROM NamaTabel ; Mengambil seluruh data tanpa terkecuali. SELECT field_1,field_2 FROM NamaTabel ; Mengambil data dari table Data field Kode saja Contoh : Anda Tambahkan fungsi cari() pada program sebelumnya dan ketikkan kode berikut ini : void cari(){ try{ Statement stat = con.createStatement(); String sql=SELECT * FROM mahasiswa Where nim like'+txtnim.getText()+'; ResultSet isi = stat.executeQuery(sql); if(isi.next()){ txtnama.setText(isi.getString(1)); txtalamat.setText(isi.getString(2)); } else{ JOptionPane.showMessageDialog(null,mahasiswa dengan nim tersebut tidak ada..!); } stat.close(); } catch (Exception ex){ JOptionPane.showMessageDialog(null,Error :+ex); } } Kemudian anda panggil fungsi tersebut pada method aksi ketika tombol cari di klik, seperti berikut ini : void aksi() { btcari.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { cari(); } }); } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 65
  • 66. c. Update update NamaTabel set field_1='+ value_1+', field_2='+ value_2+', field_3='+ value_3+' where field_x='+value_4+’; Contoh : Anda Tambahkan fungsi update() pada program sebelumnya dan ketikkan kode berikut ini : void update(){ try{ Statement stm=con.createStatement(); String sql=update mahasiswa set nama='+txtnama.getText()+', alamat='+txtalamat.getText()+'where nim='+txtnim.getText()+'; stm.executeUpdate(sql); stm.close(); JOptionPane.showMessageDialog(null,Berhasil diedit); } catch(Exception ex){ JOptionPane.showMessageDialog(null,Error :+ex); } } Kemudian anda panggil fungsi tersebut pada method aksi ketika tombol update di klik, seperti berikut ini : void aksi() { btupdate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { update(); } }); } d. Delete delete from NamaTabel + where Field_x='+value_x+'; Contoh : Anda Tambahkan fungsi hapus() pada program sebelumnya dan ketikkan kode berikut ini : void hapus(){ try{ Statement statement = con.createStatement(); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 66
  • 67. String sql=delete from mahasiswa + where nim='+txtnim.getText()+'; statement.executeUpdate(sql); statement.close(); JOptionPane.showMessageDialog(null,Data telah di Hapus); } catch(Exception ex){ JOptionPane.showMessageDialog(null,Error :+ex); } } Kemudian anda panggil fungsi tersebut pada method aksi ketika tombol hapus di klik, seperti berikut ini : void aksi() { bthapus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { cari(); } }); } Listing Kode Lengkap Bisa Anda Lihat Di lampiran Yang Ada Pada Modul ini. 3.2 DDL (Data Definition Language) Peritah DDL adalah perintah query yang digunakan untuk membangun atau merekayasa database. Berikut perintah yang ada pada DDL, a. Create b. Alter c. Drop Dalam praktikum ini kita hanya akan mempelajari proses DML(Data Manipulation Language) yaitu proses yang nantinya kita gunakan untuk memanipulasi record yang terdapat dalam table dari databse yang telah kita buat. M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 67
  • 68. Daftar Pustaka Jardiknas. “Java Education Network Indonesia”, Meruvian education M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 68
  • 69. Lampiran 1 Contoh Listing Kode Aplikasi Java A. Membuat Jam Digital import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.Timer; public class jam extends JFrame { JLabel tampil=new JLabel(); Timer tim; jam() { super(jam); setLocation(200,100); setSize(400,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void reaksi() { getContentPane().setLayout(new FlowLayout()); getContentPane().add(tampil); tampil.setFont(new Font(impaq,20,50)); getContentPane().setBackground(Color.RED); tampil.setForeground(Color.GREEN); setVisible(true); ActionListener t=new ActionListener() { public void actionPerformed(ActionEvent evt) { String nol_jam=; String nol_detik=; String nol_menit=; Date dt=new Date (); int nilai_jam=dt.getHours(); int nilai_menit=dt.getMinutes(); int nilai_detik=dt.getSeconds(); if (nilai_detik =9) { nol_detik=0; } if (nilai_menit = 9) { nol_menit =0; } if (nilai_jam = 9 ) { nol_jam=0; } String jam=nol_jam+ Integer.toString(nilai_jam); Stringmenit=nol_menit+Integer.toString(nilai_menit); Stringdetik=nol_detik+Integer.toString(nilai_detik); tampil.setText(+jam+:+menit+:+detik+); } }; tim=new Timer(1000,t); tim.start(); } public static void main(String args[]) { jam j=new jam(); j.reaksi(); } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 69
  • 70. B. Membuat JMenu import javax.swing.*; import java.awt.*; import javax.swing.table.*; import java.awt.event.*; import java.sql.*; class menunya extends JFrame { JMenuBar mb=new JMenuBar(); JMenu mn=new JMenu(File); JMenu mn2=new JMenu(Open); JRadioButton bt=new JRadioButton(buku); JMenuItem mnt=new JMenuItem(Close); JMenuItem unta=new JMenuItem(Unta); menunya() { super(PROGRAM MENGHITUNG ZAKAT); setLocation(200,100); setSize(400,350); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void objek() { getContentPane().add(mb,BorderLayout.NORTH); mb.add(mn); mn2.add(bt); mn.add(mn2); mn.add(mnt); mn.add(unta); mb.setBounds(10,10,100,30); setVisible(true); } public static void main(String args[]) { menunya ZZ=new menunya(); ZZ.objek(); } } C. Aplikasi Tampilkan Tanggal import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.Timer; class tanggal extends JFrame { JLabel tampil=new JLabel(); Timer tim; tanggal() { setTitle(jam); setLocation(200,100); setSize(400,150); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); buatTanggal(); } void tampilan() { getContentPane().setLayout(new FlowLayout()); getContentPane().add(tampil); tampil.setFont(new Font(impaq,20,25)); tampil.setForeground(Color.GREEN); setVisible(true); } void buatTanggal() { ActionListener t=new ActionListener() { public void actionPerformed(ActionEvent evt) { String bulan=; String hari=; Date dt=new Date(); int ntahun=dt.getYear()+1900; int nbulan=dt.getMonth()+1; int nhari=dt.getDate(); String tbulan=bulan+Integer.toString(nbulan); String thari =hari+Integer.toString(nhari); String thn=String.valueOf(ntahun); tampil.setText(Tanggal : +thari+ Bulan :+tbulan+ Tahun :+thn); } }; tim=new Timer(1000,t); tim.start(); } public static void main(String args[]) { tanggal j=new tanggal(); j.tampilan(); } } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 70
  • 71. D. Color Chooser import java.awt.*; import java.awt.event.*; import javax.swing.colorchooser.*; import javax.swing.*; class colorcoser extends JFrame { JLabel cop=new JLabel(PROGRAM GANTI WARNA); JInternalFrame jInternalFrame1 = new JInternalFrame(); JColorChooser jColorChooser1 = new JColorChooser(); JPanel Panel1 = new JPanel(); JPanel Panel2 = new JPanel(); JButton btChange = new JButton(); JButton btCancel = new JButton(); JButton warna = new JButton(Ganti Warna); colorcoser() { super(PROGRAM GANTI WARNA); setSize(500,550); setLocation(40,20); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void komponen() { getContentPane().setLayout(null); getContentPane().add(jInternalFrame1); jInternalFrame1.getContentPane().setLayout(null); jInternalFrame1.setVisible(false); getContentPane().add(cop); getContentPane().add(warna); cop.setBounds(150, 10, 150, 23); warna.setBounds(150, 40, 150, 23); Panel1.setLayout(null); Panel1.setBorder(javax.swing.BorderFactory.createEtchedBorder (javax.swing.border.EtchedBorder.RAISED)); Panel1.add(jColorChooser1); jColorChooser1.setBounds(9, 10, 440, 290); jInternalFrame1.getContentPane().add(Panel1); Panel1.setBounds(10, 10, 460, 310); Panel2.setLayout(null); Panel2.setBorder(javax.swing.BorderFactory.createEtchedBorder (javax.swing.border.EtchedBorder.RAISED)); btChange.setText(Change); Panel2.add(btChange); btChange.setBounds(230, 10, 100, 23); btCancel.setText(Cancel); Panel2.add(btCancel); btCancel.setBounds(350, 10, 100, 23); jInternalFrame1.getContentPane().add(Panel2); Panel2.setBounds(10, 330, 460, 40); jInternalFrame1.setBounds(4, 70, 490, 420); getContentPane().setBackground(new java.awt.Color(234,235,213)); setVisible(true); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 71 } void reaksi() { warna.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(e.getSource()==warna) { jInternalFrame1.setVisible(true); } } }); btCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(e.getSource()==btCancel) { jInternalFrame1.setVisible(false); } } }); btChange.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if(e.getSource()==btChange) { Color newColor=jColorChooser1.getColor(); getContentPane().setBackground(newColor); jInternalFrame1.setVisible(false); } } }); } public static void main(String[] args) { colorcoser evt=new colorcoser(); evt.komponen(); evt.reaksi(); } }
  • 72. A. Contoh Aplikasi Database Sederhana : Anda Buat Database baru dengan nama coba, kemudian buat table dengan mengeksekusi query berikut ini : CREATE TABLE IF NOT EXISTS `mahasiswa` ( `nim` varchar(12) NOT NULL, `nama` varchar(40) NOT NULL, `alamat` varchar(200) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Kemudian Anda Buat Kelas Baru Dengan Nama Database2 dan Anda Pastekan Kode Berikut: import java.sql.*; import javax.swing.*; import java.awt.event.*; /** * * @author Gianto-echa */ public class Database2 extends JFrame { Connection con=null; JLabel jLabel1 = new JLabel(); JTextField txtnama = new JTextField(); JLabel jLabel2 = new JLabel(); JScrollPane jScrollPane1 = new JScrollPane(); JTextArea txtalamat = new JTextArea(); JLabel jLabel3 = new JLabel(); JButton bthapus = new JButton(); JButton btcari = new JButton(); JButton btupdate = new JButton(); JTextField txtnim = new JTextField(); JLabel jLabel4 = new JLabel(); JButton btsimpan = new JButton(); Database2() { setSize(320,280); setLocation(100,100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void Koneksi() { try { String connectionURL = jdbc:mysql://localhost/coba; String username = root; String password = root; Class.forName(com.mysql.jdbc.Driver); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 72
  • 73. con= DriverManager.getConnection(connectionURL, username , password ); System.err.println(Sukses Koneksi); } catch(Exception ex) { System.err.println(Tidak Berhasil Koneksi); System.exit(1); } } void simpan() { try { Statement statement = con.createStatement(); String sql=insert into mahasiswa values('+txtnim.getText()+','+txtnama.getText()+','+txtalamat.getText()+');; statement.executeUpdate(sql); statement.close(); JOptionPane.showMessageDialog(null,Berhasil disimpan); } catch(Exception ex) { JOptionPane.showMessageDialog(null,nim data sudah ada); System.err.print(ex); } } public void cari() { try { Statement stat = con.createStatement(); String sql=SELECT * FROM mahasiswa Where nim like'+txtnim.getText()+'; ResultSet isi = stat.executeQuery(sql); if(isi.next()) { txtnama.setText(isi.getString(1)); txtalamat.setText(isi.getString(2)); } else { JOptionPane.showMessageDialog(null,mahasiswa dengan nim tersebut tidak ada..!); } stat.close(); } catch (Exception ex) { JOptionPane.showMessageDialog(null,Error :+ex); } } void update() { try M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 73
  • 74. { Statement stm=con.createStatement(); String sql=update mahasiswa set nama='+txtnama.getText()+', alamat='+txtalamat.getText()+'where nim='+txtnim.getText()+'; stm.executeUpdate(sql); stm.close(); JOptionPane.showMessageDialog(null,Berhasil diedit); } catch(Exception ex) { JOptionPane.showMessageDialog(null,Error :+ex); } } public void hapus() { try { Statement statement = con.createStatement(); String sql=delete from mahasiswa + where nim='+txtnim.getText()+'; statement.executeUpdate(sql); statement.close(); JOptionPane.showMessageDialog(null,Data telah di Hapus); } catch(Exception ex) { JOptionPane.showMessageDialog(null,Error :+ex); } } void aksi() { btsimpan.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { simpan(); } }); btupdate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { update(); } }); bthapus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { hapus(); } }); btcari.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { cari(); } }); } private void initComponents() { getContentPane().setLayout(null); M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 74
  • 75. jLabel1.setText(Contoh Aplikasi Database Sederhana); getContentPane().add(jLabel1); jLabel1.setBounds(20, 10, 200, 14); getContentPane().add(txtnama); txtnama.setBounds(90, 70, 170, 20); jLabel2.setText(Alamat); getContentPane().add(jLabel2); jLabel2.setBounds(20, 100, 34, 14); txtalamat.setColumns(20); txtalamat.setRows(5); jScrollPane1.setViewportView(txtalamat); getContentPane().add(jScrollPane1); jScrollPane1.setBounds(90, 96, 166, 70); jLabel3.setText(Nama); getContentPane().add(jLabel3); jLabel3.setBounds(20, 70, 27, 14); bthapus.setText(Delete); getContentPane().add(bthapus); bthapus.setBounds(180, 180, 73, 23); btcari.setText(Cari); getContentPane().add(btcari); btcari.setBounds(200, 40, 51, 23); btupdate.setText(Update); getContentPane().add(btupdate); btupdate.setBounds(90, 180, 73, 23); getContentPane().add(txtnim); txtnim.setBounds(90, 40, 100, 20); jLabel4.setText(Nim); getContentPane().add(jLabel4); jLabel4.setBounds(20, 40, 17, 14); btsimpan.setText(Simpan); getContentPane().add(btsimpan); btsimpan.setBounds(10, 180, 67, 23); setVisible(true); } public static void main(String args[]) { M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 75
  • 76. Database2 db2=new Database2(); db2.initComponents(); db2.Koneksi(); db2.aksi(); } M o d u l D a s p r o - C o p y l e f t b y : G i a n t o W i d o d o , S . K o m Page 76 }