SemesterIII
Praktikum : 1
Judul: Mengenal Netbeans 6.5
Waktu : 1x110 Menit
1. Tujuan Intruksional
- Mahasiswa memahami ruang lingkup dan mengetahui fungsi-fungsi utama dalam
menggunakan Netbeans 6.5
a.
b.
c.
d.
e.
f.
2. Teori
Java dibuat dan diperkenalkan pertama kali oleh sebuah tim Sun Microsystems yang dipimpin
oleh Patrick Naughton dan James Gosling pada tahun 1991 dengan code name Oak. Tahun
1995 Sun mengubah nama Oak tersebut menjadi Java, ide pertama kali kenapa Java dibuat
adalah karena adanya motivasi untuk membuat sebuah bahasa pemrograman yang bersifat
Portable dan Platform independent.
Netbeans adalah merek dagang yang hak atas kekayaan intelektualnya dimiliki oleh Sun
Microsystems,Inc. Netbeans sebagai IDE ditujukan untuk memudahkan pemrograman java,
Netbeans mencakup compiler atau builder dan debugger internal. Hal ini sangat memudahkan
proses paska perancangan program. Proses deployment dan / atau tes dapat juga dilakukan dari
dalam NetBeans
3.Alat dan Bahan
BKPM
Komputer dengan Netbeans 6.5
Buku Referensi Pemrograman Visual dengan Netbeans
Buku Referensi Pemrograman Berorientasi Objek
LCD
ATK
4.Pelaksanaan Praktikum
a.
Jalankan Software Netbeans 6.5, tunggu beberapa saat sampai netbeans siap digunakan,
seperti gambar berikut :
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
b.Jalankan menu File | New Project, sehingga dialog New Project muncul
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
c.Pada Menu Categories = Java, Project = Java Application, klik tombol Next, Sehingga New
Java Application muncul
b.
Isikan Sesuai dengan gambar di atas, pastikan pilihan Create Main Class dan Set as Main
project untuk dicentang, klik tombol Finish untuk menyelesaikan pembuatan Project baru.
c.
Tambahkan baris program berikut pada Method Public static void main
Public static void main(String[] args) {
// TODO code application logic here
System.out.println("Hello World ..!");
}
d.
Untuk mengetahui apakah program tersebut benar, lakukan Compile, klik kanan tepat di
atas node nama file poject (Project | HelloWorld | Sources Packages | helloworld | java.main)
pilih compile file.
e.
Jika pada baris akhir bagian jendela Output tertuliskan :
BUILD SUCCESSFUL (total time: 2 seconds)
Maka Program tersebut benar
f.
Untuk melihat hasil program tersebut, lakukan seperti langkah f tetapi pilih Run file
3. Latihan
a.
Buatlah sebuah program untuk menghitung luas segitiga dengan ketentuan : nilai alas
dan tinggi ditentukan dalam program tersebut.
b.
Buatlah sebuah program untuk mengitung lingkaran dengan ketentuan : nilai Phi dan
jari-jari ditentukan dalam program tersebut.
4. Tugas
a. Jelaskan perbedaan antara J2SE ( Standart Edition), J2EE (Enterprise Edition) juga J2ME
(Micro edition) ?
3
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
b. Jelaskan Perbedaan pembuatan project dengan menggunakan Java Application dan Java Class
Library ?
c. Apa yang dimaksud dengan Package dalam netbeans ?
b. Jelaskan perbedaan antara Compile file dan Build juga Run file ?
c. Jelaskan pengertian istilah-istilah berikut :
1) Class
2) Objek / instans
3) State
4) Behaviour
5) Method
6) Konstruktor
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum : 2
Judul: Membuat Objek dalam Java dengan Netbeans
Waktu : 1x110 Menit
ClassPria
(STATE)
(STATE)
Minum()
Memiliki_organ_kelamin_wanita
Memiliki_organ_kelamin_pria
Menua()
(BEHAVIOUR)
(BEHAVIOUR)
Contoh Instance
/ objek
maria
doni
4. Pelaksanaan Praktikum
a. BuatMelahirkan()
Project baru berupa Java Class Library
b. Selanjutnya buatlah sebuah file untuk class yang akan dibuat.dengan cara, klik kanan tepat di
atasMenyusui()
node nama file poject (Project | New | Java Class), seperti pada gambar di bawah :
c. Pada dialog New Java Class, isikan nama kelas yang akan kita buat (misal : Buku), package
sesuai dengan yang diinginkan, akhiri dengan klik tombol Finish.
5
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
e.
f. Jalankan program tersebut, jika benar akan menghasilkan seperti di bawah ini :
run:
judul:Pemrograman berorientasi Objek, Pengarang:IndraJani,S.Kom,MM
judul:Pemrograman Visual, Pengarang:Sudarmanto,ST,MT
BUILD SUCCESSFUL (total time: 1 second)
5. Latihan
a. Buatlah sebuah project baru ( sebuah Class Library ) untuk Class Manusia
Dengan properti berat, tinggi dan usia, buat juga objek dari class manusia dan
definisikan nilai dari masing masing variable tersebut.
6. Tugas
a. Jelaskan tentang istilah-istilah berikut
1) Enkapsulasi
2) Pewarisan
3) Polymorphism
b. Jelaskan mengenai Top-level Container, intermediate Container, Atomic Component, Layout
Manager ?
c. Berikan contoh untuk soal B ?
d. Jelaskan tentang AWT dan SWING komponen dan cara menggunakannya ?
1) Apa perbedaan antara variabel dan object?
2) Ada berapa macam tipe data primitif dalam Java?
Sebutkan dan jelaskan!
3) Sebutkan tipe data reference dalam Java!
4) Beri contoh deklarasi konstanta dalam Java!
5) Sebutkan keyword dalam java!
6) Kenapa deklarasi variabel berikut salah?
a) int8k;
b) char null;
c) String public;
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 3
Judul Praktikum: Sintaks Bahasa dan Tipe Data
Alokasi Waktu: 2 x 110 menit
1.
2.
3.
a.
b.
c.
d.
e.
4.
5.
a.
1)
2)
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
{ //nested blok
int z;/* variabel ini hanya dikenal di dalam nested blok ini saja */
z = 20;
// variabel x,y dan a dikenal di dalam nested blok ini
System.out.println("Nilai x + y + z + a : " + (x + y + z + a));
} //akhir dari nested blok
//z = 11; // -> Error variabel z tidak lagi dikenal di sini
//variabel y masih dikenal di sini karena masih dalam
//blok
//code tempat ia dideklarasikan
System.out.println("Nilai y : " + y);
} //akhir dari blok baru
//y = 12; // -> Error: variabel y tidak dikenal di sini
//variabel x masih dikenal di sini karena masih dalam blok
//code tempat ia dideklarasikan
System.out.println("Nilai x : " + x);
}
}
b.
c.
1)
ARRAY
ARRAY SATU DIMENSI
class SingleArray {
9
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
public static void main(String[] args) {
int [] x;
// Cara 1
x = new int[3];
x[0] = 20 ;
x[1] = 10 ;
x[2] = 30;
System.out.println("Nilai x[0] : " + x[0]);
System.out.println("Nilai x[1] : " + x[1]);
System.out.println("Nilai x[2] : " + x[2]);
int [] y = new int[3];
// Cara 2
y[0] = 20 ;
y[1] = 10 ;
y[2] = 30;
System.out.println("Nilai y[0] : " + y[0]);
System.out.println("Nilai y[1] : " + y[1]);
System.out.println("Nilai y[2] : " + y[2]);
int[] z = {20,10,30};
// Cara 3 tdk menggunakan new
System.out.println("Nilai z[0] : " + z[0]);
System.out.println("Nilai z[1] : " + z[1]);
System.out.println("Nilai z[2] : " + z[2]);
}
}
2)
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
System.out.println("Nilai arrx[1] : " + arrx[1][2]);
System.out.println("Nilai arrx[2] : " + arrx[2][0]);
System.out.println("Nilai arrx[2] : " + arrx[2][1]);
System.out.println("Nilai arrx[2] : " + arrx[2][2]);
int[][] arry = {{10,20,30},{40,50,60},{70,80,90}} ;
//Cara 2 Array 2 Dimensi dgn ukuran 3 * 3 = 9
System.out.println("Nilai arry[0] : " + arry[0][0]);
System.out.println("Nilai arry[0] : " + arry[0][1]);
System.out.println("Nilai arry[0] : " + arry[0][2]);
System.out.println("Nilai arry[1] : " + arry[1][0]);
System.out.println("Nilai arry[1] : " + arry[1][1]);
System.out.println("Nilai arry[1] : " + arry[1][2]);
System.out.println("Nilai arry[2] : " + arry[2][0]);
System.out.println("Nilai arry[2] : " + arry[2][1]);
System.out.println("Nilai arry[2] : " + arry[2][2]);
}
}
3)
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 4
Judul Praktikum: OPERATOR
Alokasi Waktu: 2 x 110 menit
1.
2.
Teori
3.
a.
b.
c.
d.
e.
4.
Prasyarat
Mengerjakan tugas pendahuluan pada modul sebelumnya
5.
Pelaksanaan Praktikum
OPERATOR PENUGASAN
1.
Buatlah sebuah project dengan class baru, dengan nama Operator1
2.
Tulislah Source Code berikut pada Code Editor class tersebut.
class Operator1 {
public static void main(String[] args) {
int var = 1;
int a,b,c;
a = b = c = 99;
int d,e,f;
f = 99;
e = f;
d = e;
System.out.println("Nilai var : " + var);
System.out.println("Nilai a : " + a);
System.out.println("Nilai b : " + b);
System.out.println("Nilai c : " + c);
System.out.println("Nilai f : " + f);
System.out.println("Nilai e : " + e);
System.out.println("Nilai d : " + d);
int z;
12
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
char Teks1 = 'a'; // dalam Unicode karakter 'a' direpresentasikan
97
z = Teks1 * 10; // z = 97 * 10;
System.out.println("Nilai Teks1 : " + Teks1);
System.out.println("Nilai z : " + z);
}
}
OPERATOR MATEMATIK, PENAIKAN DAN PENURUNAN
class Operator2{
public static void main(String[] args) {
int x = 10;
int y;
y = ++x;
System.out.println("Nilai x dari ++x : "+x);
System.out.println("Nilai y dari ++x : "+y);
x=10;
y = x++;
System.out.println("Nilai x dari x++ : "+x);
System.out.println("Nilai y dari x++ : "+y);
}
}
OPERATOR BITWISE (MANIPULASI BIT)
class Operator3{
public static void main(String[] args) {
int x,y;
x = ~10;
System.out.println("Nilai negasi x : "+x);
x = 170 & 34;
System.out.println("Nilai and : "+x);
x = 170 | 34;
System.out.println("Nilai or : "+x);
x = 170 ^ 34;
System.out.println("Nilai xor : "+x);
x = 1170;
y = x >> 1;
System.out.println("Nilai geser kanan : "+x);
x = -1170;
y = x >> 1;
System.out.println("Nilai geser kanan neg : "+x);
x = 1170;
y = x >>> 1;
System.out.println("Nilai geser kanan 1 bit 0 : "+x);
x = -1170;
13
// dengan angka
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
y = x >>> 1;
System.out.println("Nilai geser kanan 1 bit 0 neg : "+x);
x = 1170;
y = x << 1;
System.out.println("Nilai geser kiri : "+x);
x = 1073742994;
y = x << 1;
System.out.println("Nilai geser kiri : "+x);
}
}
OPERATOR LOGIKA
class Operator4{
public static void main(String[] args) {
int x,y;
x = 5;
if(x!=0 && (x/2)>=5){
System.out.println("TRUE 1 : " + x);
System.out.println("TRUE 1 : ");
}else {
System.out.println("FALSE 1");
}
}
}
class Operator6{
public static void main(String[] args) {
int x,y;
x = 5;
if(x!=0 & (x/2)>=5) {
System.out.println("TRUE 2 : " + x);
System.out.println("TRUE 2 : ");
}else {
System.out.println("FALSE 2");
}
}
}
class Operator7{
public static void main(String[] args) {
int x,y;
x=10;
y=5;
14
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
if(x>y & x++ > 10) {
System.out.println("TRUE 3 : " + x);
System.out.println("TRUE 3 : " + y);
System.out.println("TRUE 3 : ");
}else {
System.out.println("FALSE 3");
}
}
}
class Operator8{
public static void main(String[] args) {
int x,y;
x=10;
y=5;
if(x>y & ++x>10) {
System.out.println("TRUE 3 x : " + x);
System.out.println("TRUE 3 y : " + y);
System.out.println("TRUE 3 : ");
}else {
System.out.println("FALSE 3");
}
}
}
OPERATOR PRIORITAS
class Operator9{
public static void main(String[] args) {
int x,hasil;
x = 40;
boolean test1 = true;
hasil = test1?x/10:x*20;
System.out.println("Nilai x : "+ x);
System.out.println("Nilai Hasil : "+ hasil);
}
}
15
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum:
5
Praktikum
: Pengenalan Kondisi if, switch, while, for , jump dll dlm Java
Alokasi Waktu: 3 x 110 menit
1.
1.
2.
3.
4.
5.
BKPM
Referensi Pemrograman Berorientasi Objek
Komputer
LCD
Alat Tulis Kantor (ATK)
4.
Prasyarat
Mengerjakan tugas pendahuluan pada modul sebelumnya
5.
Pelaksanaan Praktikum
class Operator8{
public static void main(String[] args) {
int x,y;
x=10;
y=5;
if(x>y & ++x>10) {
System.out.println("TRUE 3 x : " + x);
System.out.println("TRUE 3 y : " + y);
System.out.println("TRUE 3 : ");
}else {
System.out.println("FALSE 3");
}
}
}
class TestSeleksi4 {
static void main(String[] args) {
int e,f;
e = f = 6;
if(e>5) {
if(e==f)
System.out.println("if di dalam if Test Seleksi 3");
}else
System.out.println("pasangan if terluar Test Seleksi 3");
}
16
serta
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
}
class TestSwitch1 {
public static void main(String[] args) {
int bulan = 4;
switch(bulan)
{
case 1:
System.out.println("pertama");
case 2:
System.out.println("kedua");
case 3:
System.out.println("kuartal 1");
break;
case 4:
System.out.println("keempat");
case 5:
case 6:
System.out.println("kuartal 2");
break;
case 7:
case 8:
case 9:
System.out.println("kuartal 3");
break;
default:
System.out.println("kuartal 4");
}
System.out.println("keluar dari switch");
}
}
class TestSwitch5 {
public static void main(String[] args) {
int bulan, year;
bulan = 1;
year = 2002;
switch(bulan) {
case 1: switch(year) {
case 2002 : System.out.println("Bulan 1 tahun 2002");
break;
case 2003 : //...
}
case 2: //...
default: //default...
17
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
}
}
}
class TestIter1 {
public static void main(String[] args) {
int a = 9 ;
System.out.println("Sebelum while");
while(a>=10) {
System.out.println("Nilai a : "+a);
a--;
}
System.out.println("Setelah while");
}
}
class TestIter2 {
public static void main(String[] args) {
int b = 9 ;
System.out.println("Sebelum do");
do {
System.out.println("Nilai b : "+b);
b--;
} while (b>=10);
System.out.println("Setelah do");
}
}
class TestIter3 {
public static void main(String[] args) {
int c;
System.out.println("Sebelum for");
for(c=0;c<5;c++)
System.out.println("Nilai c: " + c);
System.out.println("Setelah for");
}
}
class TestIter4 {
public static void main(String[] args) {
int d,e;
System.out.println("Sebelum for");
for(d=0,e=6;d<=3 && e>=3;d++,e--) {
System.out.println("Nilai d : " + d);
18
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
System.out.println("Nilai e : " + e);
}
System.out.println("Setelah for");
}
}
class TestIter5 {
public static void main(String[] args) {
int g,h;
System.out.println("Sebelum for");
for(g=0,h=6;g<=3 && h>=3;g++,h--) {
System.out.println("Nilai g : " + g);
System.out.println("Nilai h : " + h);
}
System.out.println("Setelah for");
}
}
class TestIter6 {
public static void main(String[] args) {
int a = 9 ;
System.out.println("Sebelum while");
while(a>=0) {
System.out.println("Nilai a : "+a);
a--;
}
System.out.println("Setelah while");
}
}
class TestIter7 {
public static void main(String[] args) {
int b = 9 ;
System.out.println("Sebelum do");
do {
System.out.println("Nilai b : "+b);
b--;
} while (b>=0);
System.out.println("Setelah do");
}
}
class TestIter8 {
public static void main(String[] args) {
19
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
int a = 0 ;
System.out.println("Sebelum while");
while(a>0) {
System.out.println("Nilai a : "+a);
a--;
}
System.out.println("Setelah while");
}
}
class TestIter9 {
public static void main(String[] args) {
int b = 0 ;
System.out.println("Sebelum do");
do {
System.out.println("Nilai b : "+b);
b--;
} while (b>0);
System.out.println("Setelah do");
}
}
class TestBreak1 {
public static void main(String[] args) {
System.out.println("Sebelum for");
for(int a=0;a<10;a++) {
if(a==4) break;
System.out.println("Nilai a : "+ a);
}
System.out.println("Setelah for");
}
}
class TestBreak2 {
public static void main(String[] args) {
System.out.println("Sebelum for");
for(int b=1;b<3;b++) {
System.out.println("Perulangan ke "+ b);
for(int c=0;c<5;c++) {
if(c==2) break;
System.out.println("Nilai c : " + c);
}
}
System.out.println("Setelah for") ;
20
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
}
}
class TestBreak3a {
public static void main(String[] args) {
boolean status=true;
//boolean status=false;
label1: {
System.out.println("Di dalam blok code label1");
label2 : {
if(status) break label1;
System.out.println("Di dalam blok code label2");
}
System.out.println("Masih di dalam blok code label1");
}
System.out.println("Di luar blok code label1");
}
}
class TestBreak3b {
public static void main(String[] args) {
//boolean status=true;
boolean status=false;
label1: {
System.out.println("Di dalam blok code label1");
label2 : {
if(status) break label1;
System.out.println("Di dalam blok code label2");
}
System.out.println("Masih di dalam blok code label1");
}
System.out.println("Di luar blok code label1");
}
}
class TestBreak4 {
public static void main(String[] args) {
System.out.println("Sebelum for");
loop1: for(int x=1;x<3;x++) {
System.out.println("Perulangan ke " + x);
loop2: for(int y=0;y<5;y++) {
if(y==2) break loop1;
System.out.println("Nilai y : "+ y);
}
System.out.println("Dalam Loop1 ");
21
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
}
System.out.println("Setelah for");
}
}
class TestBreak5 {
public static void main(String[] args) {
loopA: for(int x =0;x<2;x++) {
System.out.println("Loop A Ke " + x);
}
loop1: for(int x=1;x<3;x++) {
System.out.println("Perulangan ke " + x);
loop2: for(int y=0;y<5;y++) {
//
if (y==2) break loopA;
System.out.println("Nilai y : " + y);
}
}
System.out.println("Akhir program");
}}
class TestContinue6 {
public static void main(String[] args) {
int x=10;
System.out.println("Sebelum while");
while(x-->1) {
if(x % 2 == 0) continue;
System.out.println("Nilai x : " + x);
}
System.out.println("Sesudah while");
}
}
class TestContinue7 {
public static void main(String[] args) {
int x=10,y;
label1: while(x-->0) {
y=0;
while(y++<10) {
if(y > x) {
System.out.println();
continue label1;
}
System.out.print(x*y + " ");
}
}
}}
22
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
class TestReturn{
public static void main(String args[]) {
boolean t = true;
System.out.println("Sebelum return");
if (t) return;
System.out.println("Setelah return"); } }
23
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 6
Judul Praktikum: Pengenalan Class , Method dan objek dlm Java
Alokasi Waktu: 1 x 110 menit
1.
a.
b.
c.
d.
o
o
o
1.
2.
o
o
o
o
24
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
e.
2.
Prasyarat
Mengerjakan tugas pendahuluan pada modul sebelumnya
3.
Pelaksanaan Praktikum
Buatlah sebuah project dengan class baru, dengan nama VolcanoRobot
Tulislah Source Code berikut pada Code Editor class tersebut.
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
a.
1)
2)
3)
4. Tugas Praktikum
Kerjakan sesuai petunjuk di bawah ini :
Salin source program class Person Test pada dasar teori praktikum 1.
Tambahkan method method lain yang diperlukan dalam class Person.
Implementasikan method method yang Anda buat dalam class PersonTest.
b.
1)
2)
3)
26
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 7
Judul Praktikum: Constructor
Alokasi Waktu: 1 x 110 menit
1. Tujuan
Mahasiswa memahami constructor dan penggunaannya
Mahasiswa dapat membuat program input dari keyboard
2.
o
o
o
o
o
o
Dasar Teori
Constructor
Constructor adalah method yang dipanggil pada saat pembuatan instant of class (object).
Jika dalam sebuah class tidak terdapat constructor maka secara otomatis Java akan
membuatkan sebuah default constructor.
Code di dalam constructor berfungsi untuk memberikan nilai awal dari atribut dalam sebuah
object.
Nama constructor harus persis sama dengan nama class dan tidak memiliki tipe return value.
Constructor juga bisa memiliki parameter yang digunakan untuk memberi nilai awal atributatributnya.
Contoh :
class Foo {
private int x;
public Foo(){
x = 1;
}
}
class Pizza {
private String name;
private int radius;
public Pizza(String n, int r){
name = n
radius = r;
}
}
o Constructor tidak bisa dipanggil secara langsung tetapi harus menggunakan new, yaitu pada
saat pembuatan instant of class.
Pizza myDinner = new Pizza(American favourite, 10);
Input Data dari Keyboard
o Untuk menginputkan data dari keyboard, class yang digunakan adalah BufferedReader.
o Untuk bisa mengakses class BufferedReader maka perlu mengimpor dari package java.io dan
menambahkan statemen throws IOException pada header method main, penggunaannya adalah
sbb :
27
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
import java.io.*;
class InputPizza {
public static void main (String [] args)throws IOException {
BufferedReader br = new BufferedReader
(new InputStreamReader(System.in));
System.out.print(Nama Pizza : );
String nama = br.readLine();
System.out.print(Radius Pizza : );
int rad = Integer.parseInt(br.readLine());
Pizza p = new Pizza(nama, rad);
}
}
Tugas Praktikum
Kerjakan sesuai petunjuk di bawah ini :
Tambahkan sebuah constructor berparameter dalam class Person.
Tambahkan method idealWeight yang digunakan untuk menghitung berat ideal dari seseorang.
Tambahkan method isIdeal yang digunakan untuk mengecek apakah seseorang telah memiliki
berat ideal atau tidak.
d. Buat class InputPersonTest dimana di dalamnya terdapat program input data yang diperlukan
untuk mengisi nilai atribut object class Person.
e. Masukkan data hasil inputan tersebut ke object class person melalui constructor.
f. Tampilkan data-data atribut object class Person beserta berat ideal dan berapa kg dia harus
mengurangi atau menambah berat badannya agar mencapai berat ideal.
1.
a.
b.
c.
28
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 8
Judul Praktikum:
Alokasi Waktu: 1 x 110 menit
1. Tujuan
Mahasiswa dapat mengerti overloading dan penggunaannya
Mahasiswa dapat mengerti toString method dan penggunaannya
2. Dasar Teori
Overloading
o Overloading adalah dua method atau lebih yang memiliki nama sama tetapi berbeda tipe
parameter atau jumlah parameter.
o Jika salah satu method dipanggil maka method yang memiliki parameter yang sesuai yang akan
dikerjakan.
o Selain pada method, overloading juga berlaku pada constructor.
Method to String
o Method toString dapat dipanggil dengan hanya memanggil nama objectnya saja tanpa harus
menyertakan nama method ini.
o Biasanya digunakan untuk memberikan informasi dari sebuah object.
o Contoh :
Tugas Praktikum
1. (Project Part : Do it YourSelf)
a. Buatlah deklarasi dari class Account yang memiliki atribut dan method sesuai dengan gambar
di bawah ini :
Account
accountNumber
customerName
Balance
currentBalance()
processDeposit(x)
processDeposit(x,y)
processWithdraw(x)
toString()
b.
c.
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
d.
30
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Menu :
1. Create Account (A)
2. Create Account (B)
3. Deposit (A)
4. Deposit (B)
5. Withdraw
6. Print
Choose : 3
Menu :
1. Create Account (A)
2. Create Account (B)
3. Deposit (A)
4. Deposit (B)
5. Withdraw
6. Print
Choose : 5
**Creating Account**
Account Number : 123
Customer Name : Adi
**Deposit**
Balance 50000
Amount : 20000
**Withdraw**
Balance 70000
Amount : 10000
b. Menu No 2, 4, 6 Anda buat sendiri implementasinya sesuai dengan constructor dan method
yang telah Anda buat.
31
Praktikum: 9
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Judul Praktikum: Inheritance
Alokasi Waktu: 1 x 110 menit
1. Tujuan
Mahasiswa dapat memahami konsep inheritance pada pemrograman berorientasi object
Mahasiswa dapat membuat subclass dari class yang telah ada dan membuat dan memanipulasi
object dari subclass
2. Dasar Teori
Inheritance
o Inheritance adalah salah satu fitur yang dimiliki oleh Java dimana kita bisa mendefinisikan
sebuah class baru berdasar pada class yang telah ada.
o Class baru ini akan mirip dengan class yang telah ada namun memiliki karakteristik baru.
o Class yang digunakan sebagai dasar disebut parent class/superclass/base class.
o Class baru yang berdasar pada superclass disebut child class/subclass/derived class.
o Dalam Java subclass hanya bisa memiliki satu superclass (single inheritance) sedangkan
superclass bisa memiliki satu subclass atau lebih.
o Untuk menyatakan bahwa sebuah subclass berdasar pada suatu superclass digunakan statement
extends.
o Contoh :
o Keterangan
Class Birthday adalah turunan dari class Card, hanya anggota class Card yang bersifat public
yang akan diturunkan pada class Birthday. Karena class Birthday tidak bisa mengakses anggota
private dari class Card maka pemberian nilai pada anggota private bisa dilakukan lewat
constructor class Card dengan menggunakan statement super. Super selain digunakan untuk
mengakses constructor superclass, bisa juga digunakan untuk mengakses anggota superclass
yang memiliki nama sama dengan anggota subclass.Pada kedua class masing-masing terdapat
method greeting() hal ini menyebabkan greeting() milik class Card tidak terlihat pada class
32
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Birthday (method overriding), sehingga untuk dapat mengakses greeting() yang berada di class
Card dapat digunakan statement super.greeting().
o Penggunaan di main method adalah sebagai berikut :
Card c = new Card(Lelly);
Birthday b = new Birthday(Andien, 23);
c.greeting();
b.greeting();
Tugas Praktikum
1. Sebuah jasa persewaan VCD memiliki desain class-class seperti di bawah ini, class-class
tersebut merupakan desain dari programmer yang belum mengerti tentang inheritance, desain
ulang class-class tersebut dan gambarkan susunan class-class nya sehingga mengikuti konsep
inheritance !
Vcd
title
length
getTitle()
getLength()
show()
Movie
title
length
director
rating
show()
MusicVideo
title
length
artist
category
show()
2. Buat class VcdRental yang berisi main method dengan input dan output sebagai berikut
33
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
3.
Menu :
1. Movie
2. VideoMusic
3. Print Data
Choose(0 for quit): 1
Title : Jelangkung
Director : Jose P
Rating : 4
Duration : 100
Menu :
1. Movie
2. VideoMusic
3. Print Data
Choose(0 for quit): 2
Title : Paradox
Artis : Element
Category : Pop
Duration : 120
Menu :
1. Movie
2. VideoMusic
3. Print Data
Choose(0 for quit): 3
Title
Dir/Art Duration Rating/Category
------------------------------------------Paradox
Element 100
Pop
Jelangkung Jose P 120
4
34
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 10
Judul Praktikum: Interface
Alokasi Waktu: 1 x 110 menit
1. Tujuan Instruksional Khusus :
- Mahasiswa dapat menjelaskan mengimplementasikan fungsi dari interface.
2. Teori :
Interface
Interface adalah semacam class dimana semua method di dalamnya hanya berisi
deklarasi method tanpa implementasi.
Deklarasi suatu interface tidak jauh berbeda dengan deklarasi suatu class, hanya saja
methode-methode yang ada di dalam interface tersebut tidak ada implementasi
Nama
interfa
ce
Implementasi dari interface dilakukan di masing-masing class yang
mengimplementasikan interface tersebut.
Interface di gunakan di suatu class dengan menggunakan keyword implements.
Sebuah class dapat mengimplementaasikan lebih dari satu interface.
Class yang menimplementasikan interface harus mengakses semua method yang ada di
dalam class interface tersebut.
35
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Contoh :
<<Interface>> animal
+ speak ();
Kucing
+ speak ();
36
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
<<abstract >>Animals
Airplane
+ takeOff();
+ land();
+ fly();
+ eat ();
+ getName();
+setName(string name);
+play();
Bird
+walk();
+eat(); + takeOff();
+ getName();
+setName(string name);
+play();
+eat();
+ land();
+ fly();
+ buildNest();
+layEggs();
+eat();
37
Superman
+ takeOff();
+ land();
+ fly();
+ leapBuild();
+stopBullet();
+ eat ();
+spide
+eat();
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
38
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 11
Judul Praktikum: PACKAGE dan CLASSPATH
Alokasi Waktu: 1 x 110 menit
1. Tujuan Instruksional Khusus :
- Mahasiswa dapat menjelaskan package dan classpath.
2, Teori :
Package adalah sebuah kontainer atau kemasan yang dapat digunakan untuk mengelompokkan
kelas- kelas sehingga memungkinkan beberapa kelas yang bernama sama disimpan dalam
package yang berbeda.
Sebuah package pada Java dapat digunakan oleh package yang lain ataupun kelas-kelas di luar
Package . Jika dalam bahasa pemrograman Java terdapat kode import
example.animal.Mamalia; maka program tersebut memakai kelas mamalia yang ada pada
package example.animal.
Jika terdapat kode import example.animal.*; maka program tersebut memakai semua kelas
yang ada pada package example.animal.
Package pada bahasa pemrograman Java dinyatakan dengan kode: package nama_package;
Misalnya: package example.animal;
yang ditulis pada bagian atas kode program kelas anggota package. Misal sebuah kelas dengan
nama Mamalia ada di dalam package dengan nama example.animal maka file yang menyimpan
kode program kelas Mamalia dimasukkan dalam direktori. Contoh package yang ada dalam
library java antara lain java.util, javax.swing, dll.
Beberapa keuntungan mengorganisasi class-class buatan kita dalam sebuah package adalah :
1.
Terhindar dari konflik penamaan. Mungkin saja ada orang lain, dibelahan dunia lain,
membuat class yang bernama Rectangle juga. Yang membedakan antara Rectangle kita
dengan yang lain adalah fully qualified name. Fully qualified name dari class Rectangle
kita adalah com.raka.geoms.Rectangle.
2.
Teratur. Mendapatkan suatu class tertentu akan mudah dengan mengetahui nama
package-nya.
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
-
BKPM
Alat tulis
PELAKSANAAN PRAKTIKUM:
Lakukan pengesetan path dan classpath secara manual pada system OS.
1. Setting Path
C:\j2sdk1.4.2\bin;
2. Setting Classpath
.;\j2sdk1.4.2\lib\tools.jar;
Lakukan pengetesan apakah pengesetan berhasil dengan cara jalankan program
command promp.kemudian ketikan perintah :
c:javac
jika setting berhasil maka akan keluar tampilan sbb:
4. Lakukan kompilasi file yang berekstensi java di command promp dengan perintah :
d:nama_direktori\javac nama_file.java
d:nama_direktori\java nama_file
5. Jalankan file TestBanking.java
6. Amati hasilnya.
KUIS__
40
Praktikum: 12
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Judul Praktikum: EXCEPTIONS
Alokasi Waktu: 1 x 110 menit
Error
---AWT
Throwable
RuntimeException
---OutOfMemoryError
ArithmeticException
---NullPointerException
Exception
IndexOutOfBoundsException
EOFException
IOException
41
FileNotFoundException
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Output :
42
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
8. Jalankan program TangkapEksepsi.java
43
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
44
Praktikum: 13
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Judul Praktikum: Thread
Alokasi Waktu: 1 x 110 menit
Interface Runabble
Jika suatu class misal class A sudah melakukan extends terhadap class lain maka untuk
membuat class A menjadi suatu thread class adalah dengan melakukan implements dari
Runnable interface.
Hampir sama dengan Thread class, class A yang melakukan implementasi Runnable
harus meng-override method run().
Thread States
Thread object mempunyai lima buah nilai state yaitu new, ready, running, inactive
atau finished. Untuk mengetahui state dari thread kita dapat menggunakan method isAlive().
Jika hasil yang di dapat true maka thread dalam keadaan ready, inactive atau running state.
Jika hasil yang didapat false maka thread dalam keadaan new dan belum berjalan atau dalam
finished state.
Thread priority
Prioritas thread dapat diatur dengan menggunakan method setPriority(). Untuk dapat
mengetahui prioritas suatu thread dapat digunakan method getPriority().
Thread class mempunyai 3 buah konstanta prioritas yaitu :
45
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
46
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
47
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
d. Jalankan program berikut
48
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
e. Jalankan program berikut
49
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 14
Judul Praktikum: AWT dan SWING
Alokasi Waktu: 1 x 110 menit
Tujuan Instruksional
a Memahami persamaan dan perbedaan antara AWT dan Swing
b Perbedaan antara komponen dan kontainer.
c Mendesain aplikasi GUI menggunakan AWT.
d Mendesain aplikasi GUI menggunakan Swing.
e Menjelaskan tentang flow layout, border layout, dan grid layout dalam komponen GUI
f Membuat tampilan yang komplek dalam mendesain aplikasi GUI.
2 Teori 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.
The Java Foundation Class (JFC), merupakan bagian penting dari Java SDK, yang termasuk
dalam koleksi dari API dimana dapat mempermudah pengembangan aplikasi JAVA GUI. JFC
termasuk diantara 5 bagian utama dari API yaitu AWT dan Swing. Tiga bagian yang lainnya
dari API adalah Java2D, Accessibility, dan Drag and Drop. Semua itu membantu developer
dalam mendesain dan mengimplementasikan aplikasi dengan visualisasi yang lebih baik.
AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat aplikasi
Java dan applet. Anda akan mempelajari applet pada bab berikutnya. 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.
3 Praktikum
a. Menampilkan Frame :
50
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
import java.awt.Frame;
public class SampleFrame extends Frame{
public SampleFrame() {
}
public static void main(String args[]) {
SampleFrame sf = new SampleFrame();
sf.setSize(300, 300); //Coba hilangkan baris ini
sf.setVisible(true); //Coba hilangkan baris ini
}
b. Menampilkan Panel :
import java.awt.Frame;
public class GraphicPanel extends Panel {
public GraphicPanel() {
setBackground(Color.black);
}
public void paint(Graphics g) {
g.setColor(new Color(0,255,0)); //green
g.setFont(new Font("Helvetica",Font.PLAIN,16));
g.drawString("Hello GUI World!", 30, 100);
g.setColor(new Color(1.0f,0,0)); //red
g.fillRect(30, 100, 150, 10);
}
public static void main(String args[]) {
Frame f = new Frame("Testing Graphics Panel");
GraphicPanel gp = new GraphicPanel();
f.add(gp);
f.setSize(600, 300);
f.setVisible(true);
}
}
51
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
import
public
public
}
public
java.awt.*;
class FrameWControls extends Frame{
FrameWControls() {
static void main(String args[]) {
FrameWControls fwc = new FrameWControls();
fwc.setLayout(new FlowLayout()); //more on this later
fwc.setSize(600, 600);
fwc.add(new Button("Test Me!"));
fwc.add(new Label("Labe"));
fwc.add(new TextField());
CheckboxGroup cbg = new CheckboxGroup();
fwc.add(new Checkbox("chk1", cbg, true));
fwc.add(new Checkbox("chk2", cbg, false));
fwc.add(new Checkbox("chk3", cbg, false));
List list = new List(3, false);
list.add("MTV");
list.add("V");
fwc.add(list);
Choice chooser = new Choice();
chooser.add("Avril");
chooser.add("Monica");
chooser.add("Britney");
fwc.add(chooser);
fwc.add(new Scrollbar());
fwc.setVisible(true);
}
}
52
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
import
public
public
}
public
java.awt.*;
class BorderLayoutDemo extends Frame{
BorderLayoutDemo() {
static void main(String args[]) {
BorderLayoutDemo bld = new BorderLayoutDemo();
bld.setLayout(new BorderLayout(10, 10)); //may remove
bld.add(new Button("NORTH"), BorderLayout.NORTH);
bld.add(new Button("SOUTH"), BorderLayout.SOUTH);
bld.add(new Button("EAST"), BorderLayout.EAST);
bld.add(new Button("WEST"), BorderLayout.WEST);
bld.add(new Button("CENTER"), BorderLayout.CENTER);
bld.setSize(200, 200);
bld.setVisible(true);
}
}
java.awt.*;
class GridLayoutDemo extends Frame {
GridLayoutDemo() {
static void main(String args[]) {
GridLayoutDemo gld = new GridLayoutDemo();
gld.setLayout(new GridLayout(2, 3, 4, 4));
gld.add(new Button("ONE"));
gld.add(new Button("TWO"));
gld.add(new Button("THREE"));
gld.add(new Button("FOUR"));
gld.add(new Button("FIVE"));
gld.setSize(200, 200);
gld.setVisible(true);
}
}
53
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
import
public
public
}
public
java.awt.*;
class ComplexLayout extends Frame{
ComplexLayout() {
static void main(String args[]) {
ComplexLayout cl = new ComplexLayout();
Panel panelNorth = new Panel();
Panel panelCenter = new Panel();
Panel panelSouth = new Panel();
panelNorth.add(new Button("ONE"));
panelNorth.add(new Button("TWO"));
panelNorth.add(new Button("THREE"));
panelCenter.setLayout(new GridLayout(4,4));
panelCenter.add(new TextField("1st"));
panelCenter.add(new TextField("2nd"));
panelCenter.add(new TextField("3rd"));
panelCenter.add(new TextField("4th"));
panelSouth.setLayout(new BorderLayout());
panelSouth.add(new Checkbox("Choose me!"),
BorderLayout.CENTER);
panelSouth.add(new Checkbox("I'm here!"),
BorderLayout.EAST);
panelSouth.add(new Checkbox("Pick me!"),
BorderLayout.WEST);
cl.add(panelNorth, BorderLayout.NORTH);
cl.add(panelCenter, BorderLayout.CENTER);
cl.add(panelSouth, BorderLayout.SOUTH);
cl.setSize(300,300);
cl.setVisible(true);}}
54
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
i
import javax.swing.*;
import java.awt.*;
public class JOptionPaneDemo {
JOptionPane optionPane;
public JOptionPaneDemo() {
}
void launchFrame() {
optionPane = new JOptionPane();
String name = optionPane.showInputDialog("Hi, what's yourname?");
optionPane.showMessageDialog(null,"Nice to meet you, " + name + ".",
"Greeting...",optionPane.PLAIN_MESSAGE);
System.exit(0);
}
public static void main(String args[]) {
new JOptionPaneDemo().launchFrame();
}
}
55
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 15
Judul Praktikum: GUI EVENT HANDLING
A
Alokasi Waktu: 1 x 110 menit
Tujuan Instruksional
a Menerangkan komponen-komponen delegation event model
b Mengerti bagaimana delegation event model bekerja
c Menciptakan aplikasi GUI yang berinteraksi dengan user
d Mendiskusikan manfaat dari class-class adapter
e Mendiskusikan keuntungan-keuntungan dari menggunakan inner dan anonymous class
2 Teori Dasar
Pada modul 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.
Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi dari
user. Untuk memahami model, mari kita pelajari pertama-tama melalui tiga komponen
utamanya.
a
Event Source
The 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
The 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 diklik. Ada beberapa class event untuk kategori yang berbeda dari user action. Sebuah event
object mempunyai tipe data mengenai salah satu class ini.
a
56
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
import java.awt.*;
import java.awt.event.*;
public class MouseEventsDemo extends Frame implements
MouseListener, MouseMotionListener {
TextField tf;
public MouseEventsDemo(String title){
super(title);
tf = new TextField(60);
addMouseListener(this);
}
public void launchFrame() {
/* Menambah komponen pada frame */
add(tf, BorderLayout.SOUTH);
setSize(300,300);
setVisible(true);
}
public void mouseClicked(MouseEvent me) {
String msg = "Mouse clicked.";
tf.setText(msg);
}
public void mouseEntered(MouseEvent me) {
String msg = "Mouse entered component.";
tf.setText(msg);
}
57
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
public void mouseExited(MouseEvent me) {
}
public void mousePressed(MouseEvent me) {
String msg = "Mouse pressed.";
tf.setText(msg);
}
public void mouseReleased(MouseEvent me) {
String msg = "Mouse released.";
tf.setText(msg);
}
public void mouseDragged(MouseEvent me) {
String msg = "Mouse dragged at " + me.getX() + "," + me.getY();
tf.setText(msg);
}
public void mouseMoved(MouseEvent me) {
String msg = "Mouse moved at " + me.getX() + "," +
me.getY();
tf.setText(msg);
}
public static void main(String args[]) {
MouseEventsDemo med = new MouseEventsDemo("Mouse Events
Demo"); med.launchFrame(); }
}
b Close Frame :
import java.awt.*;
import java.awt.event.*;
class CloseFrame extends Frame implements WindowListener {
Label label;
CloseFrame(String title) {
super(title);
label = new Label("Close the frame.");
this.addWindowListener(this);
}
void launchFrame() {
setSize(300,300);
setVisible(true);}
public void windowActivated(WindowEvent e) {}
public void windowClosed(WindowEvent e) { }
public void windowClosing(WindowEvent e) {
setVisible(false);
System.exit(0); }
public void windowDeactivated(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
public void windowIconified(WindowEvent e) { }
public void windowOpened(WindowEvent e) { }
public static void main(String args[]) {
CloseFrame cf = new CloseFrame("Close Window Example");
cf.launchFrame(); } }
58
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
c
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
import java.awt.*;
import java.awt.event.*;
class CloseFrame extends Frame{
Label label;
CloseFrame(String title) {
super(title);
label = new Label("Close the frame.");
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
dispose();
System.exit(1); } }); }
void launchFrame() {
setSize(300,300);
setVisible(true); }
public static void main(String args[]) {
CloseFrame cf = new CloseFrame("Close Window Example");
cf.launchFrame(); }}
60
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 16
Judul Praktikum: SPLASH SCREEN APLIKASI
Alokasi Waktu: 1 x 110 menit
Tujuan Instruksional
- Mahasiswa dapat mengembangkan sebuah Splash Screen untuk sebuah aplikasi
dengan menggunakan komponen-komponen Swing
2 Teori Dasar
a Jwindow berfungsi untuk membuat window yang akan menjadi latar belakang logo,
Komponen ini terdapat dalam package javax.swing. sehingga package tersebut harus
dikenalkan ke dalam program
bJlabel berfungsi untuk membuat label yang berguna untuk menampilkan teks
c JprogressBar berfungsi untuk membuat baris progress yang dapat digunakan untuk
menunjukan progress dari sebuah loading, pada penerapannya biasanya digunakan
komponen Timer.
dDimension berfungsi untuk mengambil ukuran layar monitor, baik panjang maupun
lebarnya.komponen tersebut juga terdapat pada package javax.swing
61
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
3
Praktikum
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.LineBorder;
//deklarasi class
public class SIP extends JWindow {
private Dimension dimensi=Toolkit.getDefaultToolkit().getScreenSize();
private JLabel lblLogo=new JLabel(new ImageIcon("Gambar/sip.jpg"));
private JProgressBar barisProgres = new JProgressBar();
private int time=0;
private Timer timer;
//deklarasi konstruktor
public SIP () {
//menyiapkan variabel warna
Color Warna = Color.blue;
//mengatur baris progress
barisProgres.setValue(0);
barisProgres.setPreferredSize(new Dimension(100,15));
barisProgres.setBackground(Color.white);
barisProgres.setForeground(Color.red);
barisProgres.setStringPainted(true);
//mengatur warna garis pinggir
barisProgres.setBorder(new LineBorder(Warna,1));
lblLogo.setBorder(new LineBorder(Warna,1));
//meletakkan objek ke kontainer
getContentPane().add(lblLogo,BorderLayout.NORTH);
getContentPane().add(barisProgres,BorderLayout.CENTER);
//mengatur lama window logo tampil pada layar monitor
timer = new Timer(50,new ActionListener(){
public void actionPerformed(ActionEvent evt){
time++;
barisProgres.setValue(time);
if(barisProgres.getPercentComplete()==1.0){
timer.stop();
setVisible(false);
//menjalankan menu utama
// new Menu_Utama();
}
}
});
timer.start();
//menempatkan objek ke memori sebelum ditampilkan
pack();
//mengatur lokasi window tepat di tengah layar monitor
setLocation(dimensi.width/2-getWidth()/2,dimensi.height/2-getHeight()/2);
//menempaktkan window ke layar monitor\
show();}
//deklarasi metode utama
public static void main(String args[]){
new SIP();}}
62
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 17
Judul Praktikum: CLASS KONEKSI
Alokasi Waktu: 1 x 110 menit
1
Tujuan Instruksional
Mahasiswa dapat menghubungkan sebuah database (MySql) dengan interface java
Teori Dasar
Membuat program yang terhubung dengan database diperlukan sebuah class koneksi, class
tersebut berisi driver dan url dimana database berada di media penyimpanan, format driver
disesuaikan dengan jenis RDBMS yang dipakai, untuk database tertentu paket java sudah
menyediakan salahsatu nya adalah MySql, berikut contoh format umum penggunaan
driver :
Class.forName(nama_driver);
Sedangkan format URL, adalah lokasi dimana database disimpan, format penulisannya
sebagai berikut :
DriverManager.getConnetion(url,user,password);
Contoh penggunaan:
DriverManager.getConnection("jdbc:mysql://localhost/pelajar","root","password");
Praktikum
63
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
import java.sql.*;
public class koneksi {
public koneksi(){
}
public Connection bukaKoneksi()throws SQLException{
Connection con=null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/pelajar",
"root", "password");
return con;
}
catch(SQLException se){
System.out.println("No Connection open");
return null;
}
catch(Exception ex){
System.out.println("Cound not open connection");
return null;
}
}
}
64
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 18
Judul Praktikum: ANTAR MUKA
Alokasi Waktu: 1 x 110 menit
Tujuan Instruksional
- Mahasiswa dapat membuat antar muka aplikasi menggunakan komponen swing
- Mahasiswa dapat mengatur letak masing masing komponen swing terhadap
Container
Teori Dasar
a GUI (Graphical User Interface), memungkinkan user untuk berinteraksi dengan
komputer
secara lebih baik.
b Pengguna berinteraksi dengan berbagai elemen grafis,diantaranya: button, dialog box,
menu,
dsb.
c Sejak 1994 Sun Microsystem berupaya untuk membuat JAVA memiliki perangkat
bergaya
desktop dengan ToolkitJAVA yang dikenal sebagai AWT (Abstract Windowing Toolkit)
d
Tahun 1997, muncul JFC (Java Foundation Class) untuk kepentingan pembuatan
aplikasi
Window yang merupakan pengembangan dari AWT.
JFC mempunyai kode swing yang terdapat pada package yang disediakan pada JAVA
SDK
versi 1.2 ke atas (JAVA 2)
Graphical Object
65
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
a Container (tempat), obyek yang dapat menampung komponen grafis dan tempat yang
lebih
kecil
Contoh: frames, panels
b Component, obyek grafis yang berfungsi untuk menampilkan data, menerima
masukan, atau menunjukkan suatu kondisi.
Contoh: buttons, labels, text fields
c Event, obyek yang merepresentasikan suatu kejadian.
Contoh: gerakan mouse, penekanan tombol
d Listener, suatu obyek yang menunggu suatu kejadian khusus dan akan bereaksi
(melakukan
sesuatu) jika kejadian tersebut terjadi
66
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
3
Praktikum
import javax.swing.*;
import java.awt.event.*;
public class Siswa extends JFrame implements ActionListener {
private JPanel jpSiswa = new JPanel();
private JLabel lblNis = new JLabel("Nis:"),lblNama = new JLabel("Nama:"),
lblPassword = new JLabel("Password:"),lblAlamat = new JLabel("Alamat:"),
lblEmail = new JLabel("Email:"),lblJenisKelamin = new
JLabel("JenisKelamin:");
private JTextField txtNis = new JTextField(),txtNama = new
JTextField(),txtPassword
= new JTextField(),txtAlamat = new JTextField(),txtEmail = new
JTextField();
private JComboBox cboJenisKelamin = new JComboBox();
private JButton btnTambah = new JButton("Tambah"),btnUbah = new JButton("Ubah"),
btnHapus = new JButton("Hapus"),btnBersih = new JButton("Bersih");
Siswa (){
super("Entri Data MHS");
setSize(500,300);
jpSiswa.setLayout(null);
//mengatur letak objek pada container
lblNis.setBounds(15, 20, 100, 25);
lblNama.setBounds(15, 55, 100, 25);
lblPassword.setBounds(15, 90, 100, 25);
lblAlamat.setBounds(15, 125, 100, 25);
lblEmail.setBounds(15, 160, 100, 25);
lblJenisKelamin.setBounds(15, 195, 100, 25);
txtNis.setBounds(115, 20, 100, 25);
txtNama.setBounds(115, 55, 100, 25);
txtPassword.setBounds(115, 90, 100, 25);
txtAlamat.setBounds(115, 125, 150, 25);
txtEmail.setBounds(115, 160, 100, 25);
cboJenisKelamin.setBounds(115, 195, 50, 25);
btnTambah.setBounds(340, 20, 85, 25);
btnUbah.setBounds(340, 55, 85, 25);
btnHapus.setBounds(340, 90, 85, 25);
btnBersih.setBounds(340, 125, 85, 25);
//mengatur/meletakkan objek pada objek panel
jpSiswa.add(lblNis);
jpSiswa.add(lblNama);
jpSiswa.add(lblPassword);
jpSiswa.add(lblAlamat);
jpSiswa.add(lblEmail);
jpSiswa.add(lblJenisKelamin);
67
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
jpSiswa.add(txtNis);
jpSiswa.add(txtNama);
jpSiswa.add(txtPassword);
jpSiswa.add(txtAlamat);
jpSiswa.add(txtEmail);
jpSiswa.add(cboJenisKelamin);
jpSiswa.add(btnTambah);
jpSiswa.add(btnUbah);
jpSiswa.add(btnHapus);
jpSiswa.add(btnBersih);
//mengisi combo Jenis kelamin
cboJenisKelamin.addItem("L");
cboJenisKelamin.addItem("P");
//mengatur objek agar dapat berinteraksi dengan user
btnTambah.addActionListener(this);
btnUbah.addActionListener(this);
btnHapus.addActionListener(this);
btnBersih.addActionListener(this);
//menambahkan objek JPanel pada container frame
getContentPane().add(jpSiswa);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent ae) {
Object obj = ae.getSource();
if (obj ==btnTambah){
Tambah();
}
if (obj == btnUbah){
Ubah();
}
if (obj == btnHapus){
Hapus();
}
Bersih();
}
void Bersih(){
}
void Tambah(){
}
void Ubah(){
}
void Hapus(){
}
public static void main (String[] args){
new Siswa();
}
}
68
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 19
Judul Praktikum: MANIPULASI DATABASE MELALUI ANTARMUKA JAVA
Alokasi Waktu: 1 x 110 menit
2
3
Tujuan Instruksional
- Mahasiswa dapat menghubungkan aplikasi java dengan database mysql
- Mahasiswa dapat membuat program untuk menambahkan data pada database
MySQl melalui aplikasi java
- Mahasiswa dapat membuat program untuk menghapus data pada database MySQl
melalui aplikasi java
- Mahasiswa dapat membuat program untuk memperbaharui data pada database
MySQl melalui aplikasi java
Teori Dasar
Praktikum
Gunakan program java yang telah dibuat sebelumnya (class Siswa) tambahkan code
seperti dibawah ini sehingga menghasilkan keluaran yang semestinya.
import java.sql.*;
. . . .
. . . .
void Bersih(){
txtNis.setText("");
txtNama.setText("");
txtPassword.setText("");
txtAlamat.setText("");
txtEmail.setText("");
cboJenisKelamin.setSelectedIndex(0);
}
void Tambah(){
try{
Koneksi ObjKoneksi = new Koneksi();
Connection con = ObjKoneksi.bukaKoneksi();
Statement st = con.createStatement();
String sql = "insert into siswa(nis,nama,password,alamat,email," +
"jeniskelamin) values ('"+txtNis.getText()
+"','"+txtNama.getText()
+"','"+txtPassword.getText()+"','"+txtAlamat.getText()+"'," +
"'"+txtEmail.getText()
+"','"+cboJenisKelamin.getSelectedItem()+"')";
int row = st.executeUpdate(sql);
if (row ==1){
JOptionPane.showMessageDialog(null,"Data sudah ditambahkan ke" +
" database","infomasi",JOptionPane.INFORMATION_MESSAGE);
con.close();
}
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,"Data tidak ditambahkan ke" +
" database","infomasi",JOptionPane.INFORMATION_MESSAGE);
}
}
69
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
void Ubah(){
try{
Koneksi ObjKoneksi = new Koneksi();
Connection con = ObjKoneksi.bukaKoneksi();
Statement st = con.createStatement();
String sql = "update siswa set nama ='"+txtNama.getText()+"'," +
"password ='"+txtPassword.getText()+"',alamat =
'"+txtAlamat.getText()
+"',email='"+txtEmail.getText()+"',jeniskelamin =
'"+cboJenisKelamin.getSelectedItem()+
"' where nis = '"+txtNis.getText()+"' ";
int row = st.executeUpdate(sql);
if (row ==1){
JOptionPane.showMessageDialog(null,"Data sudah di update "
,"infomasi",JOptionPane.INFORMATION_MESSAGE);
con.close();
}
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,"Data tidak
diUbah","infomasi",JOptionPane.
INFORMATION_MESSAGE);
}
}
void Hapus(){
try{
Koneksi ObjKoneksi = new Koneksi();
Connection con = ObjKoneksi.bukaKoneksi();
Statement st = con.createStatement();
String sql = "delete from siswa where nis = '"+txtNis.getText()+"' ";
int row = st.executeUpdate(sql);
if (row ==1){
JOptionPane.showMessageDialog(null,"Data sudah dihapus dari " +
" database","infomasi",JOptionPane.INFORMATION_MESSAGE);
con.close();
}
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,"Data tidak
dihapus","infomasi",JOptionPane.
INFORMATION_MESSAGE);
}
}
70
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Praktikum: 20
Judul Praktikum: MENAMPILKAN DATA PADA OBYEK TABEL
Alokasi Waktu: 1 x 110 menit
Tujuan Instruksional
- Masahasiswa dapat menggunakan komponen JTable untuk menampilkan data dari
database
2 Teori Dasar
Salah satu komponen Swing yang paling sering kita gunakan dalm membuat sebuah aplikasi
(terutama
aplikasi
database),
adalah
JTable
milik
Swing.
Komponen yang sangat penting ini, memiliki kemampuan yang luas. baik dari segi
tampilan/interface ataupun dari segi data yang ada didalammnya.
Jtable hanya berfungsi sebagai Viewer data. artinya data yang sebenarnya tidak disimpan
didalam JTable melainkan dalam TableModel. jadi salah klo mengira data yang kita inputkan
kedalam
JTable
disimpan
di
Jtable.
dengan begitu untuk merubah, menambah, mengambil nilai yang ada di dalam JTable yang
diperlukan adalah mengubah TableModel nya saja.
Praktikum
71
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
public int getRowCount() {
try {
if(rs == null)
return 0;
else {
rs.last();
return rs.getRow();
}
}catch(SQLException e) {
System.out.println("resultset generating error while getting rows
count");
System.out.println(e.getMessage());
return 0;
}
}
public Object getValueAt(int rowIndex, int columnIndex) {
if(rowIndex<0 || rowIndex > getRowCount() ||
columnIndex < 0 || columnIndex > getColumnCount())
return null;
try {
if(rs == null)
return null;
else {
rs.absolute(rowIndex+1);
return rs.getObject(columnIndex+1);
}
}catch(SQLException e) {
System.out.println("resultset generating error while fetching rows");
System.out.println(e.getMessage());
return null;
}
}
@Override
public String getColumnName(int columnIndex) {
try {
return rs.getMetaData().getColumnName(columnIndex+1);
}catch (SQLException e) {
System.out.println("resultset generating error while fetching column
name");
System.out.println(e.getMessage());
}
return super.getColumnName(columnIndex);
}
}
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.table.AbstractTableModel;
/**
*
* @author root
*/
public class ResultSetTableModel extends AbstractTableModel{
private ResultSet rs;
public ResultSetTableModel(ResultSet rs) {
this.rs = rs;
72
}
public
int
getColumnCount()
{
PS.Rekam Medik-Jurusan
Kesehatan - 2012
try {
if(rs == null)
return 0;
else
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
Class digunakan untuk mendukung class siswa, tambahkan code berikut pada class siswa
73
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
public class Siswa extends JFrame implements ActionListener {
private JPanel jpSiswa = new JPanel();
. . . .
. . . .
String[] strJdl={"No","Nis","Nama","Password","Alamat","Email","Jenis Kelamin"};
//Deklarasi untuk Tabel
JTable tabel = new JTable();
JScrollPane skrTabel = new JScrollPane();
Siswa (){
//pengaturan Tabel
skrTabel.getViewport().add(tabel);
tabel.setEnabled(true);
skrTabel.setBounds(15, 250, 470, 115);
//menambahkan tabel pada panel
jpSiswa.add(skrTabel);
//menambahkan objek JPanel pada container frame
getContentPane().add(jpSiswa);
//menampilkan tabel siswa ke komponen tabel
TampilTabel();
}
void Tambah(){
. . . .
. . . .
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,"Data tidak ditambahkan ke" +
" database","infomasi",JOptionPane.INFORMATION_MESSAGE);
}
TampilTabel();
}
void Ubah(){
. . . .
. . . .
catch(SQLException e){
JOptionPane.showMessageDialog(null,"Data tidak
diUbah","infomasi",JOptionPane.
INFORMATION_MESSAGE);
}
TampilTabel();
}
void Hapus(){
. . . .
. . . .
catch(SQLException e){
JOptionPane.showMessageDialog(null,"Data tidak
dihapus","infomasi",JOptionPane.
INFORMATION_MESSAGE);
}
TampilTabel();
}
74
BKPMPemrogramanBerbasisObyek(Java)
SemesterIII
void TampilTabel(){
try {
Koneksi ObjKoneksi = new Koneksi();
Connection con = ObjKoneksi.bukaKoneksi();
Statement st = con.createStatement();
String sql = "SELECT * FROM siswa";
ResultSet set = st.executeQuery(sql);
//menampilkan data ke Tabel
ResultSetTableModel model = new ResultSetTableModel(set);
tabel.setModel(model);
while(set.next()){
txtNis.setText(Integer.toString(set.getInt("nis")));
txtNama.setText(set.getString("nama"));
txtPassword.setText(set.getString("password"));
txtAlamat.setText(set.getString("alamat"));
txtEmail.setText(set.getString("email"));
cboJenisKelamin.addItem(set.getString("jeniskelamin"));
}
}
catch(SQLException e) {
System.out.println("gagal query");
}
}
75