Copyleft By:
Gianto Widodo, S.Kom
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.
PENYUSUN
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.
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
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
2.
3.
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
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.
Page 7
MODUL 2
TIPE DATA, KEYWORD, VARIABEL, OPERATOR
DAN TEKNIK KONFERSI
A. Target Praktikum
-
Mahasiswa mampu menyelesaikan permasalahan terkait penggunaan variable dan tipe data
B.
Materi Dasar
1.
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
2.
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
Bahasa pemrograman
boolean (untuk bentuk logika), char (untuk bentuk tekstual), byte, short, int, long (integral), double
and float (floating point).
3.
Variabel
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.
Page 9
Page 10
Nama
Hasil
a+b
Penjumlahan
a-b
Pengurangan
a*b
Perkalian
a/b
Pembagian
a%b
Modulus
a+b
pq = (a+b)/(a-b)-p*q
a b
a+b p
q = (a+b/p)/(a*b)-q
ab
Contoh Operator Aritmatika :
public class OperasiAritmatika
{
public static void main(String args[])
{
short x = 6;
int y = 4;
float a = 12.5f;
Page 11
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 nilainilai tersebut. Hasil keluarannya berupa nilai boolean yaitu true atau false.
contoh
Nama
Hasil
a == b
sama dengan
a != b
tidak sama
a<b
lebih kecil
a>b
lebih besar
a <= b
lebih kecil atau benar jika a lebih kecil atau sama dengan b
sama dengan
a >= b
lebih besar atau benar jikaa lebih besar atau sama dengan b
sama dengan
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
a++
Post-increment
--a
Pre-decrement
a--
Post-decrement
Operasi
dilaksanakan,
kemudian
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 );
}
}
Page 13
Nama
Hasil
a &&b
AND
a || b
OR
a ^b
XOR
Nama
Hasil
a == b
sama dengan
a != b
tidak sama
a<b
lebih kecil
a>b
lebih besar
a <= b
lebih kecil atau benar jika a lebih kecil atau sama dengan b
sama dengan
a >= b
lebih besar atau benar jika a lebih besar atau sama dengan b
sama dengan
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;
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!!");
}
}
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.
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");
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
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).
Page 18
Page 19
Page 20
}
System.out.println("Nilai Anda : "+nilai);
System.out.println("Grade Anda : "+grade);
System.exit(0);
}
}
dan
Page 21
Page 22
MODUL 4
PERULANGAN/LOOPING
A. Target Praktikum
-
B.
Materi Dasar
pengulangan adalah berupa pernyataan dari Java yang mengijinkan kita untuk mengeksekusi blok
berulang-ulang sesuai dengan jumlah tertentu yang diinginkan.
Ada
tiga
macam
jenis
code
dari
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.
Page 23
2.
do-while loop
Do-while loop
mirip
dengan
while-loop.
Pernyataan
di
dalam
do-while
loop
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;
Page 24
statement2;
}
-
diperiksa.
Kemudian,
Jika
ekspresi i--
kondisi
bernilai
true,
pernyataan di dalam
for
loop dieksekusi.
i>=0 lagi. Kondisi ini akan dilakukan berulang-ulang sampai mencapai nilai yang salah (false).
4.
Pernyataan break tidak berlabel (unlabeled) digunakan untuk menghentikan jalannya pernyataan
switch.
Selain itu pernyataan break unlabeled juga bisa digunakan untuk menghentikan pernyataan-
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
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
Aliran kontrol
pada
label
akan
pada pernyataan yang terletak dibawah label. Jadi jika pernyataan yang tidak dibawahnya maka tidak
akan mengenali label yang telah dituliskan.
4.3.1
Bentuk pernyataan continue tidak berlabel (unlabeled) akan melewati bagian pernyataan
pernyataan ini dituliskan dan memeriksa
setelah
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; i<6; i++ ){
if(i==3 ){
Page 26
continue;
}
System.out.println(i);
}
4.3.2
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; i<6; i++ ) {
if(i==3 ){
continue search;
}
System.out.println(i);
}
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
sama
dengan
tipe
Contohnya, return;
4.5
Nested Loop
Nested Loop adalah suatu bentuk perulangan didalam perulangan,Perhatikan contoh berikut ini untuk
memahaminya :
public class nested{
public static void main(String[]args){
for(int i=0;i<4;i++){
for(int j=0;j<5;j++){
System.out.print(j);
}
System.out.println();
}
}
}
Page 27
MODUL 5
ARRAY/LARIK (1 Dimensi) dan (Multidimensi)
A. Target Praktikum
-
B.
Materi Dasar
Dalam bab ini, kita akan mendiskusikan mengenai array dalam Java. Pertama, kita akan
mendefinisikan apa
yang dimaksud
dengan
array,
kemudian
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
dalam Java
yang
konstruktor.
Proses
ini
di
Java
disebut
sebagai instantiation
(istilah
berarti membuat)
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.
Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari array, Anda
harus menggunakan indeks atau subscript.
dalam
tipe integer,
dimulai
dari
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
{
public static void main( String[] args )
{
int[] ages = new int[100];
for( int i=0; i<100; i++ )
{
System.out.print( ages[i] );
}
}
}
Page 29
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; i<ages.length; i++ )
{
System.out.print( ages[i] );
}
}
}
// karakter array 8 x 16 x 24
char[][][] threeD = new char[8][16][24];
Page 30
Page 31
MODUL 6
PERULANGAN LANJUTAN ( ALGORITMA SORTING )
A. Target Praktikum
-
Mahasiswa mampu
sort,
B.
Materi Dasar
1. Algoritma Sorting
Sorting adalah proses menyusun elemen elemen dengan tata urut tertentu dan proses tersebut
terimplementasi dalam
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:
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.
Page 32
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.
Page 33
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.
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.
e.
Jika sebelum pass n-1 sudah tidak ada pertukaran data maka pertukaran langsung dihentikan.
Page 35
MODUL 7
EXCEPTION HANDLING DAN METHOD
A. Target Praktikum
-
Mendefinisikan exception
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
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 :
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
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
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.
Page 39
b.
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)
{
Page 40
if(sisa>0)
{
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.
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 pensil extends alat_tulis{
String harga;
return harga;
nama=nm;
}
return nama;
}
merek=mrk;
pl.nama="Pensil";
return merek;
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]
Kelas
Page 42
1. Public
: Akses modifier yang mengijinkan semua kelas mengakses var,fungsi yang memliki tipe
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
String harga;
Alat Tulis";
harga=hrg;
return harga;
nama=nm;
return nama;
pl.nama("Pensil");
pl.merek("Standart");
pl.harga("5000");
System.out.println("Nama "+pl.info);// Menampilkan
merek=mrk;
return merek;
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.
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
1.
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):
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();
}
}
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
Page 45
Page 46
2.2 BorderLayout
BorderLayout membagi kontainer
ko
menjadi lima bagian diantaranya utar
tara, selatan, timur, barat,
dan tengah. Setiap kompone
onen dimasukkan ke dalam region yang spesifik. Region
R
utara dan selatan
membentuk jalur horizonta
ntal sedangkan region timur dan barat memben
entuk jalur vertikal. Dan
region tengah berada pada
da perpotongan jalur horizontal dan vertikal. Tam
ampilan ini adalah bersifat
default untuk object Window
ow, termasuk object dari subclass Window yaitu
u tipe
ti Frame dan Dialog.
Berikut adalah contoh pengg
nggunaan BorderLayout :
import java.awt.*;
class BorderLayoutDemo
mo extends Frame {
public static void main(S
n(String args[]) {
BorderLayoutDemo bld
bl = new BorderLayoutDemo();
bld.setLayout(new BorderLayout(10,
Bo
10)); //may remove
bld.add(new Button("N
("NORTH"), BorderLayout.NORTH);
bld.add(new Button("S
("SOUTH"), BorderLayout.SOUTH);
bld.add(new Button("E
("EAST"), BorderLayout.EAST);
bld.add(new Button("W
("WEST"), BorderLayout.WEST);
bld.add(new Button("C
("CENTER"), BorderLayout.CENTER);
bld.setSize(200, 200);
0);
bld.setVisible(true);
}
}
Berikut ini tampilan yang dihasilkan
di
:
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[])
{
Page 48
3.
Komponen Swing
Seperti pada package AW
WT, package dari Swing menyediakan banyak
ak class untuk membuat
Page 49
fil()
{
super("INI ADALAH FORM");
Page 50
setLocation(200,300
00);
setSize(400,300);
setDefaultCloseOpe
peration(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
void tampilan()
{
getContentPane().a
).add(nama);
nama.append("nam
ma kamu siapa");
getContentPane().a
).add(bt);
getContentPane().a
).add(txnama);
txnama.setBackgrou
round(Color.LIGHT_GRAY);
bt.addActionListene
ner(new ActionListener()
{
public void actionPe
Performed(ActionEvent e)
{
txnama.append(na
(nama.getSelectedText());
}
});
getContentPane().s
).setLayout(new FlowLayout());
setVisible(true);
}
public static void ma
ain(String args[]) {
fil f=new fil();
f.tampilan();
}
}
Output yang dihasilkan
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.
JMenu adalah komponen yang terdapat pada menuBar dimana ia merupakan objek yang ada
pada menubar.
JMenuItem adala menu yang berguna untuk menambah item (objek/pilihan) menu pada
menu.
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 :
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();
}
}
Page 54
Page 55
MODUL 9
EVENT HANDLING/ACTION PROGRAM
A. Target Praktikum
-
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
beberapa
class event
untuk kategori
2. Event Listeners
Page 56
Deskrip
kripsi
ActionListener
Bereak
aksi
Method
atas
mouse
se atau atau keyboard.
MouseListener
Bereak
aksi
atas
mouse.
se.
rface
MouseMotionListener Interfac
Mouse
Listene
ener
Motion
mendukung
Mouse
seListener. Menyediakan
method
hod-method
meman
antau
mouse,
se,seperti
yang
akan
pergerakan
drag
dan
pemind
indahan mouse.
use
1.1 ActionListener Pada Mouse
Berikut contoh Aplikasi dengann action
a
listener :
import java.awt.*;
import java.awt.event.*
t.*;
import javax.swing.*;
public class combo
{
public static void main
ain(String[] args)
{
JFrame frame = new
ew JFrame();
final JLabel lb=new
w JLabel("");
J
final String [] items
s = { " roti ", " Madu " };
final JComboBox comboBox
co
= new JComboBox(items);
JPanel pn=new JPa
anel();
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());
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();
}
}
Page 59
MODUL 10
PEMROGRAMAN DATABASE MENGGUNAKAN MYSQL
A. Target Praktikum
-
Mahasiswa mengetahui cara pengoperasian simpan, edit, cari dan hapus suatu data dalam database.
B.
Materi Dasar
1.
Data Base
Data Base merupakan sebuah tempat untuk menyimpan data secara permanent ke dalam media
Terdiri dari sejumlah class dan interface yang ditulis dalam bahasa Java
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).
Page 60
Page 61
Berikut penjabaran dari kelas koneksi_database untuk database, sesuai dengan kode diatas,
-
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:
Type (Length)
Nim
Varchar(12)
Nama
Varchar(40)
Alamat
Varchar(70)
Kemudian Anda Buat Tampilan GUI Seperti Berikut, dengan nama kelas Database :
Page 62
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
:
Page 63
}
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
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();
}
});
}
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();
Page 66
Page 67
Daftar Pustaka
Jardiknas. Java Education Network Indonesia, Meruvian education
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);
if (nilai_detik <=9)
{
nol_detik="0";
}
if (nilai_menit <= 9)
{
nol_menit ="0";
}
if (nilai_jam <= 9 )
{
nol_jam="0";
}
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();
}
}
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();
}
}
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);
}
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();
}
}
Page 71
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");
Page 72
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);
Page 74
setVisible(true);
}
Page 75
Page 76