Modul Pbo - Isbn
Modul Pbo - Isbn
YD
B IPTEK
ISBN
978-623-92626-5-5
KATA PENGANTAR
Puji syukur ke hadirat Tuhan YME atas segala limpahan karunia dan hidayah-Nya,
maka tim penulis akhirnya dapat menyelesaikan Modul Praktikum Pemrograman Berorientasi
Objek (PBO) ini. Modul ini disusun seefektif mungkin dan sistematis agar mampu
memudahkan para mahasiswa dalam mempelajari dan memahami Mata Kuliah PBO. Setiap
pembahasan disertai dengan contoh kode program yang akan membantu mahasiswa mandiri
untuk mencari tahu sintaks-sintaks yang sengaja tidak dijelaskan secara gamblang di dalam
modul.
Akhirnya, semoga modul ini dapat memberikan manfaat yang sebanyak-banyaknya bagi para
pembacanya. Kami pun menyadari bahwa modul ini pasti tidak luput dari kekurangan di
berbagai sisi, oleh karena itu, kami dengan senang hati menerima saran dari para pembaca
melalui surel kami di: [email protected] atau ke [email protected].
Tim Penulis
iii
Daftar Isi
Pendahuluan ...............................................................................................................................v
iv
PENDAHULUAN
1. Deskripsi Materi
2. Prasyarat
v
3. Petunjuk Pemakaian Modul
4. Standar Kompetensi
Mahasiswa mampu menulis kode program dengan baik dalam Bahasa Java.
Mahasiswa mampu memahami konsep Pemrograman Berorientasi Objek dan
dan dapat membedakannya dengan paradigm pemrograman procedural.
Mahasiswa mampu mengembangkan aplikasi berbasis GUI.
Mahasiswa mampu menggunakan library yang dapat menunjang
fungsionalitas aplikasi yang dibuat.
vi
1 BAB 1
Mengenal Environment Pemrograman Java
1.2 Indikator
1
Java AplletViewer (program untuk menjalankan applet tanpa menggunakan
browser)
Java Debugger dan tool lain
Mula-mula kode program ditulis dengan Bahasa Java (file berekstensi .java) akan
dikompilasi oleh compiler menjadi suatu kode objek yang berupa file berekstensi .class yang
disebut dengan istilah bytecode. Jadi, dalam Java, hasil akhir programnya tidak berupa file
berekstensi .EXE, melainkan berkestensi .class. Selanjutnya file bytecode ini akan dieksekusi
baris per baris oleh interpreter. Dengan demikian, proses kompilasi hanya dilakukan sekali,
akan tetapi proses interpretasi akan dilakukan setiap kali program dieksekusi. Dengan adanya
konsep bytecode ini, dalam terminologi Java dikenal adanya istilah ”write once, run
everywhere”. Ini berarti bahwa sekali kita menulis program dalam Bahasa Java dan
melakukan kompilasi terhadapnya, maka bytecode-nya dapat dijalankan di dalam platform
sistem operasi manapun selama komputer tersebut terpasang Java Virtual Machine (JVM).
B. Instalasi Java
Sebelum membuat sebuah program menggunakan Bahasa Java, maka kita perlu
melakukan instalasi software Java Plat form, Standar Edition (Java SE). Software ini dapat
diunduh melalui link http://www.oracle.com/technetwork/java/javase/downloads/index.html
untuk memperoleh Java SE versi terbaru (saat modul ini dibuat, versi terbaru adalah Java SE
9.0.1). Setelah Java SE berhasil diinstal, maka berikutnya kita membutuhkan software text
editor untuk menulis kode program dalam Bahasa Java. Saat ini banyak text editor yang
dapat digunakan, salah satu di antaranya adalah Notepad++. Untuk mempermudah dalam
penulisan kode program, maka kita dapat menggunakan software Java IDE (Integrated
Development Environment), misalnya Netbeans, Eclipse, Jcreator, Intellij Idea, atau yang
lainnya.
C. Pengaturan CLASSPATH
Jika kita membuat kode program Java tanpa melalui IDE, maka proses kompilasi dan
interpretasi program akan dilakukan melalui console (dalam command prompt). Agar hal ini
dapat dilakukan, maka perlu dilakukan pengaturan CLASSPATH pada console sebelum
mengkompilasi dan mengeksekusi program. Pengaturan CLASSPATH dilakukan untuk
memberitahu komputer dimana software Java SE disimpan. Pada umumnya, komputer
dengan sistem operasi berbasis Unix tidak memerlukan lagi pengaturan CLASSPATH.
Langkah pertama untuk melakukan pengaturan CLASSPATH (pada komputer
berbasis Windows) adalah masuk ke aplikasi command prompt (cmd), kemudian ketikkan
perintah di bawah ini.
Untuk menguji apakah pengaturan CLASSPATH tersebut sudah benar atau tidak, maka
ketikkan perintah javac pada cmd. Jika keluar peringatan 'javac' is not recognized as an
2
internal or external command, operable program or batch file, berarti pengaturan
CLASSPATH gagal, jika tidak, maka berarti pengaturan telah berhasil.
D. Tipe Data
Di dalam Bahasa Java, tipe data dasar dapat dibedakan menjadi empat kelompok,
yakni tipe data integer (bilangan bulat), tipe data floating-point (bilangan riil), tipe data
karakter, dan tipe data boolean. Perlu diketahui bahwa pada Java, String bukan merupakan
sebuah tipe data, melainkan sebuah objek, akan tetapi pada penggunaannya mirip seperti
menggunakan sebuah tipe data.
1. Tipe Data Integer
Tipe data integer (bilangan bulat) pada Java terbagi menjadi empat jenis tipe, yaitu
byte, short, int, dan long. Semua tipe data ini bersifat signed (bertanda), yaitu tipe data
yang dapat merepresentasikan nilai negatif maupun positif. Tidak seperti pada kebanyakan
bahasa pemrograman lainnya, Java tidak mendukung nilai unsigned (tipe tanpa tanda, yakni
tipe data yang hanya dapat menyimpan nilai positif).
3
E. Variabel
Variabel terdiri atas variabel class, instance, dan lokal. Variabel class adalah variabel
yang dapat diakses oleh semua method di dalam class, termasuk static
method seperti main. Variabel instance sama halnya dengan variabel class, tetapi tidak
menggunakan kata static dalam pendeklarasiannya. Variabel instance terhubung dengan
instance dari class. Jadi kita hanya bisa menggunakannya ketika membuat instance dari class.
Karena static method tidak terhubung dengan instance dari class, kita tidak bisa
menggunakan variabel instance dalam static method dan memasukkannya dalam main
method. Variabel lokal adalah variabel yang dideklarasikan di dalam badan method. Jadi kita
hanya dapat menggunakan variabel tersebut hanya di dalam method. Method lain dalam class
tidak peduli akan keberadaan variabel tersebut. Dan variabel lokal hanya akan ada jika
method (yang memiliki variabel lokal tersebut) dieksekusi. Dalam pendeklrasiannya kita
tidak perlu menambahkan kata static (seperti yang harus dilakukan pada saat
mendeklarasikan variabel class). Jika kata static digunakan dalam pendeklarasian variabel
lokal, maka compiler akan menghasilkan pesan error dan menolak untuk melakukan compile
terhadap program.
Sebuah variabel dideklarasikan dengan terlebih dahulu menuliskan tipe data yang
ingin digunakan, kemudian baru menuliskan nama variabelnya, seperti pada contoh di bawah
ini.
int angka1;
int angka1, angka2;
double x,y,z;
char simbol;
String kalimat;
Pada saat deklarasi variabel, kita juga dapat langsung menginisialisasi nilai dari variabel
tersebut, seperti contoh di bawah ini.
4
Contoh variabel statis:
F. Operator
Java merupakan bahasa pemrograman yang kaya akan operator. Secara umum,
operator di dalam Java dibagi menjadi lima bagian: operator aritmatika, relasional, logika,
dan bitwise, dan assignment.
1. Operator Aritmatika
Operator ini digunakan pada operasi-operasi aritmatika seperti penjumlahan,
pengurangan, pembagian dan lain-lain. Tabel berikut ini menunjukkan daftar tabel
operator aritmatika di dalam Java.
Operator Keterangan
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
% Modulus (sisa bagi)
++ Increment (menaikkan nilai dengan 1)
-- Decrement (menurunkan nilai dengan 1)
2. Operator Relasional
Operator tersebut digunakan untuk membandingkan dua buah nilai (variabel) atau lebih,
dimana operator ini akan mengembalikan atau menghasilkan nilai True atau False.
Berikut ini tabel yang berisi daftar operator relasional di dalam Java.
Operator Keterangan
== Sama dengan
!= Tidak sama dengan
> Lebih besar
5
< Lebih Kecil
>= Lebih besar atau sama dengan
<= Lebih kecil atau sama dengan
3. Operator Logika
Operator ini menghasilkan nilai yang sama dengan operator relasional, hanya saja
penggunaannya lebih pada operasi antara dua buah operand yang bertipe boolean.
Berikut ini tabel yang berisi daftar operator logika di dalam Java.
Operator Keterangan
&& Operasi AND
|| Operasi OR
^ Operasi XOR
! Operasi NOT (Negasi)
4. Operator Bitwise
Operator bitwise digunakan untuk memanipulasi nilai dari bitnya, sehingga diperoleh
nilai yang lain. Berikut ini adalah daftar operator bitwise dalam Java.
Operator Keterangan
& Operasi Bitwise AND
| Operasi Bitwise OR
^ Operasi Bitwise XOR
~ Operasi Bitwise NOT
>> Operasi shift right (geser ke kanan sebanyak n bit)
>>> Operasi shift right zero fill
<< Operasi shift left (geser ke kiri sebanyak n bit)
5. Operator Assignment
Operator assignment digunakan untuk memberikan suatu nilai ke sebuah varibel.
Operator tersebut ditandai dengan tanda sama dengan „=‟. Tabel di bawah ini
menunjukkan daftar operator assignment.
6
1.4. Latihan
A. Membuat Program Sederhana
1. Menulis program
Dengan menggunakan Editor teks sederhana (misalnya notepad), tulislah program
berikut (nomor baris tidak perlu dituliskan) :
2. Menyimpan program
Simpanlah program diatas pada suatu folder yang sudah disediakan dengan ketentuan:
- nama file SAMA PERSIS dengan nama class yang nama class yang memiliki
method main() (ingat : Java bersifat case sensitive)
- nama file berekstensi .java
Simpan kode program tersebut dengan nama Program1.java, jangan lupa untuk
mengubah bagian ”Save as type” menjadi All Types (jangan simpan sebagai .txt).
3. Kompilasi program
Langkah berikutnya adalah mengkompilasi kode program Java yang telah dibuat dengan
cara masuk ke dalam command prompt kemudian masuk ke direktori dimana kode
program tersebut disimpan. Jangan lupa, sebelumnya Anda harus melakukan pengaturan
CLASSPATH terlebih dahulu. Ketikkan kata kunci javac diikuti dengan nama file yang
ingin dikompilasi pada command prompt seperti contoh di bawah ini.
Setelah berhasil melakukan kompilasi, maka secara otomatis pada direktori dimana Anda
menyimpan kode program tersebut akan muncul sebuah file baru yakni Program1.class.
Barulah, kita bisa menjalankan file Program1.class dengan mengetikkan kata kunci java
diikuti dengan nama file .class yang ingin dijalankan (nama file tidak diikuti ekstensi
.class) seperti contoh di bawah ini.
Jika berhasil, maka pada command prompt tersebut akan muncul tulisan ”Hello World”.
7
B. Identifikasi kesalahan
Jika masih ada pesan kesalahan, periksa lagi program diatas, termasuk proses
penyimpanannya. Beberapa kesalahan yang sering muncul :
1. Nama file yang disimpan tidak sesuai dengan nama class-nya.
Penjelasan program
Baris ke-3 dan ke-4 pada kode program di atas merupakan deklarasi variabel
global berupa variabel a dan b yang bertipe int serta variabel c yang bertipe
double. Sedangkan baris ke-8 dan ke-9 merupakan deklarasi dari variabel lokal
berupa variabel hasilTambah yang bertipe int dan variabel hasilKali yang
bertipe double yang dideklarasikan di dalam blok program utama (method
main()).
8
Pada modul ini akan dikenalkan perintah memasukkan data melalui keyboard
menggunakan Scanner menampilkan input ke layar menggunakan System.out.print .
Contoh program:
1.5 Tugas
9
a. Jika terjadi kesalahan pada saat kompilasi, tunjukkan pesan kesalahan yang
ditampilkan pada layar
b. Apa arti pesan kesalahan tersebut?
c. Bagaimana cara memperbaikinya?
2. Buatlah sebuah program untuk menghitung harga akhir barang dari sebuah
supermarket yang telah didiskon sebesar 25%! Input dari program adalah harga awal
barang sebelum didiskon (melalui keyboard)
10
BAB 2
Percabangan dan Perulangan
2.2 Indikator
A. Percabangan
Di dalam Java, percabangan dapat diimplementasikan dalam dua jenis pernyataan:
pernyataan if dan pernyataan switch-case. Keduanya memiliki fungsi yang sama, tetapi
ada sedikit perbedaan di antara keduanya.
Pernyataan if
Pernyataan if dapat diimplementasikan untuk menangani percabangan yang
didasarkan atas satu, dua, atau lebih dari dua kondisi. Pernyataan if digunakan apabila
jumlah kondisi yang ada tidak terlalu banyak.
Bentuk if dengan satu kondisi adalah bentuk yang paling sederhana, mengandung
suatu pernyataan tunggal yang dieksekusi jika kondisi yang ada terpenuhi. Sintaks dasarnya
adalah sebagai berikut:
if (kondisi) {
statement1;
statement2;
…
}
11
if (kondisi) {
//statement yang akan dilakukan jika kondisi benar
Statement1;
Statement2;
…
} else {
//statement yang akan dilakukan jika kondisi salah
Statement1;
Statement2;
…
}
Apabila kondisi yang ada jumlahnya lebih dari dua, maka kita perlu menambahkan
blok else if pada kode program kita. Sintaks dasarnya adalah sebagai berikut:
if (kondisi_1){
//statement yang akan dilakukan jika kondisi_1 benar
Statement1;
Statement2;
…
} else if (kondisi_2){
//statement yang akan dilakukan jika kondisi_1 salah
Statement1;
Statement2;
…
} else {
//statement yang akan dilakukan jika kondisi_1 dan kondisi_2 salah
Statement1;
Statement2;
…
}
Ada kalanya kondisi yang ada sangat banyak, mungkin lebih dari 5 kondisi, sehingga
menulis kode percabangan menggunakan pernyataan if dirasa tidak efisien lagi, maka kita
dapat menggunakan pernyataan switch-case sebagai alternatifnya. Berikut sintaks dasarnya:
switch (ekspresi) {
case nilai1:
//statement yang akan dilakukan jika ekspresi = nilai1
statement1;
statement2;
break;
case nilai2:
//statement yang akan dilakukan jika ekspresi = nilai2
statement1;
statement2;
break;
…
default:
statement1;
statement2;
}
12
B. Perulangan
Perulangan digunakan untuk melakukan sejumlah operasi yang sama secara berulang-
ulang sampai tercapai kondisi berhentinya. Di dalam Java terdapat tiga skema perulangan:
for, while, dan do-while. Masing-masing memiliki kegunaan tersendiri.
Skema perulangan for digunakan apabila jumlah perulangan yang akan dilakukan
sudah diketahui. Sintaks dasarnya adalah sebagai berikut:
Secara fungsional, perulangan while sama saja dengan perulangan for, hanya saja
perulangan while biasa digunakan apabila jumlah perulangan yang akan dilakukan belum
diketahui pasti jumlahnya. Skema ini akan terus melakukan perulangan selama kondisi yang
diset terpenuhi. Sintaks dasarnya adalah sebagai berikut:
While(kondisi){
//statement yang akan diulang
...
iterasi
}
Perulangan ini mirip dengan skema perulangan while, akan tetapi perbedaannya
adalah pada proses pengecekan kondisi perulangan. Pada skema perulangan while, program
akan mengecek kondisi terlebih dahulu, jika kondisi bernilai true, maka statement di dalam
perulangan akan dieksekusi. Sebaliknya, pada skema perulangan do-while, program terlebih
dahulu mengeksekusi statement di dalam perulangan, baru kemudian melakukan pengecekan
kondisi. Jika kondisi bernilai true, maka program akan mengeksekusi kembali statement di
dalam perulangan. Dari sini bisa disimpulkan bahwa perulangan do-while setidaknya akan
mengeksekusi statement di dalam perulangan minimal satu kali apapun kondisi
perulangannya. Berikut adalah sintaks umum skema perulangan do-while.
do {
//statement yang akan diulang
...
iterasi
} while(kondisi)
13
2.4 Latihan
1. Tuliskan program di bawah ini.
14
2.5 Latihan
1. Dari program contoh 2, tambahkan semua hari dalam seminggu.
2. Buatlah kode program untuk menentukan apakah berat badan seseorang ideal atau tidak.
Berat badan ideal seseorang dapat dihitung dengan rumus berikut ini:
a. BBI = (TB-100) - ((TB-100)*10%) , untuk pria (TB = Tinggi Badan)
b. BBI = (TB-100) - ((TB-100)*15%) , untuk wanita.
Jika berat badan seseorang lebih besar dari nilai BBI-nya, maka berat badannya tidak
ideal. Buatlah kode programnya!
3. Jika diketahui sebuah kode program berikut ini:
1 public class Soal{
2 public static void main(String[] args){
3 int a, b;
4
5 a = 6;
6 b = -3;
7
8 if ((a + b) >= (b - a)){
9 a += 2;
10 b += a;
11 if(a % 2 == 0){
12 a = b;
13 } else{
14 b += a + 1;
15 }
16 }
17
18 a = -b - a;
19 }
20 }
15
BAB 3
Kelas (Class), Objek (Object), dan Class Diagram
3.2 Indikator
A. Kelas (class)
Bahasa Java merupakan bahasa pemrograman yang berorientasi obyek sehingga
konsep obyek dan kelas (class) menjadi penting. Dalam dunia nyata, ada banyak obyek
misalnya obyek orang, obyek mobil, obyek pohon dsb. Bagaimana memindahkan obyek
yang ada dalam dunia nyata menjadi obyek dalam pemrograman khususnya Java ?
Misalkan obyek dalam dunia nyata adalah obyek orang. Obyek tersebut dapat
diceritakan tentang ciri-cirinya , yaitu tinggi badan, berat badan, warna rambut, warna kulit,
jenis kelami, menggunakan kacamata dll. Dalam pemrograman , obyek didunia nyata akan
menjadi CLASS, dan ciri-ciri obyek akan menjadi variabel class yang disebut sebagai DATA
MEMBER.
Berdasarkan contoh diatas, pendefinisian pada pemrograman adalah :
Class Handphone class Mobil Class Orang
{ { {
String merk; // Variabel class String nama;
String tipe; private int warna; Int tinggi_badan;
String warna; private String Int berat_badan;
double harga; merek; String warna_kulit;
} } Boolean berkacamata;
}
16
Struktur pembuatan class, adalah sebagai berikut:
1 class NamaClass
2 {
3 //Isi class
4 }
Keterangan:
Nama_Kelas harus sesuai dengan nama file.
Contoh: class Handphone, maka nama filenya harus diberi nama dengan
Handphone.java.
B. Atribut
Atribut merupakan ciri-ciri yang melekat pada suatu objek. Berikut adalah contoh
syntax atribut.
[access_modifier] [tipe_data] [nama_variabel] = [value];
Keterangan:
[access_modifier] digunakan untuk memberi batasan hak class maupun method.
Access modifier akan dijelaskan pada sub bab berikutnya
[tipe_data] menjelaskan apakah variabel tersebut bertipe String, int, double, dan
sebagainya
[nama_variabel] merupakan sebutan (definisi) variabel tersebut
[value] merupakan nilai dari variable tersebut
Contoh: private String warna = “merah”;
C. Method
Method merupakan tindakan/aksi yang bisa dikerjakan oleh CLASS. Method
merupakan fungsi-fungsi yang digunakan untuk memanipulasi nilai-nilai pada atribut
dan/atau untuk melakukan hal-hal yang dapat dilakukan oleh objek itu sendiri. Dalam hal ini
method dapat berisi sekumpulan program yang telah terbungkus. Dengan method, kita bisa
memanggil kumpulan program tersebut hanya dengan memanggil nama methodnya sehingga
pekerjaan jadi lebih singkat dan tidak boros menuliskan program. Selain itu, program menjadi
lebih terstruktur, praktis, dan efisien. Contoh:
METHOD Class METHOD Class Mobil METHOD Class Orang
Handphone
- Memasukan warna - memasukan data mobil -memasukkan data orang
- Memasukkan tipe - gerak mobil belok kiri - tertawa
- Memasukkan merek - menampilkan informasi -menangis
-menampilkan informasi
17
Method yang mengembalikan nilai biasanya berupa sub program berjenis fungsi.
Sedangkan method yang tidak mengembalikan nilai biasanya berupa sub program berjenis
prosedur.
Contoh
System.out.println(“ha….ha…..ha”);}
D. Objek
Dalam pemrograman, suatu class dapat mempunyai banyak objek dan objek akan
mewarisi data member dan method yang sama dari suatu class. Objek disebut juga instance
of Class merupakan objek yang diinstan atau dibuat dari class.
Untuk membuat obyek dari class Orang, digunakan keyword „new‟. Contoh :
18
Orang org1 = new Orang (“Samuel”);
F. Class Diagram
Class Diagram adalah sebuah diagram yang menggambarkan hubungan
antar class. Class Diagram dapat kita buat dengan aplikasi perancangan (CASE), seperti
StarUML.
Baris pertama berisi nama class; Baris kedua berisi atribut; dan Baris ketiga berisi method.
19
Class Diagram biasanya digunakan oleh software engineeruntuk merancang software dengan
paradigma OOP.
3.4 Latihan
Berdasarkan contoh di atas tentang handphone, buatlah 2 buah class yang terdiri dari
class handphone dan class utama. Class utama digunakan untuk memanggil class handphone.
Ketika class utama dijalankan, hasilnya akan tampak seperti di bawah ini:
Sedangkan pada class handphone harus memiliki beberapa ketentuan sebagai berikut:
20
Jawab:
21
Sebagai tambahan informasi, dalam pembuatan method setter, kita menggunakan sub
program berjenis prosedur. Hal ini dikarenakan data yang akan kita set, tidak terdapat umpan
balik ke dalam program. Handphone (lihat script yang diberi kotak berwarna biru). Apabila
variabel tersebut tersebut tidak diberi keyword this, maka variabel tersebut akan mengacu
kepada variabel yang dideklarasikan pada parameter method setter (lihat script yang diberi
kotak berwarna hijau). Anda bisa menggunakan keyword this atau tidak apabila ada
perbedaan deklarasi nama variabel pada class Handphone dengan parameter pada method
setter (lihat script yang diberi kotak berwarna ungu).
22
Sebagai tambahan informasi, dalam pembuatan method getter, kita menggunakan sub
program berjenis fungsi karena dibutuhkan umpan balik dalam pengambilan data.
23
Langkah 3: class Utama (ketikkan script berikut)
a. Membuat kerangka class Utama
Setelah anda membuat class Utama, simpan file tersebut dengan nama
Utama.java. Di dalam class inilah, program anda akan dijalankan.
24
Setelah itu, buatlah sebuah perintah yang akan dicetak oleh program, yang nantinya user
dapat mengetahui apa saja yang harus ia lakukan ketika program dijalankan. Setiap inputan
dari user, kemudian akan ditampung ke dalam variabel (lihat script yang diberi kotak
berwarna merah). Setelah ditampung ke dalam variabel, maka data tersebut akan di set satu
per satu ke dalam class Handphone (lihat script yang diberi kotak berwarna biru). Berikut
adalah contoh script-nya.
25
d. Membuat output
Ini adalah langkah terakhir. Ketika data sudah diinput semua, maka diperlukan output
dari hasil tampilan program tersebut. Untuk mengambil data-datanya, anda cukup
menggunakan method get() dalam hal pengambilan data. Berikut adalah contoh script-nya.
Coba anda perhatikan script pada line 34! Pada script di atas, anda cukup memanggil nama
methodnya saja, tanpa perlu mengetik lagi. Hal ini menunjukkan bahwa penulisan
hp.keterangan() sama halnya dengan anda mengetikkan System.out.println ("Harga HP
sesudah diskon (10%) = Rp " + HargaDiskon()); pada class Handphone.
26
3.5 Tugas
1. Ketiklah program berikut dan lakukan kompilasi.
// MEMBUAT KELAS MOBILKU
class Mobilku
{
// Variabel class
private int merek;
private String nama;
// Panggil method
mobil1.info();
mobil2.info();
}
}
27
2. Buat skema class Mobilku
3. Apa nama file untuk menyimpan program tersebut?
4. Apa luaran program tersebut?
5. Tambahkan method supaya mobil bisa diidentifikasi jenisnya
6. Tambahkan method lain supaya mobil 1 dan mobil 2 mempunyai warna yang berbeda
7. Buatlah program untuk menggunakan class Orang seperti di atas.
28
BAB 4
Enkapsulasi
Setelah mempelajari bab ini, mahasiswa diharapkan mengetahui konsep enkapsulasi dan
implementasinya pada PBO
4.2 Indikator
29
public setXXX()dan getXXX() adalah method akses dari variabel instance dari kelas
EncapTest. Biasanya, method ini disebut sebagai getter dan setter. Oleh karena itu,
setiap kelas yang ingin mengakses variabel harus mengaksesnya melalui getter dan setter.
Keuntungan Encapsulation
• Atribut/properti dalam kelas bisa dibuat hanya-baca atau menulis saja.
• Sebuah kelas dapat memiliki total kontrol atas apa yang disimpan dalam atribut/properti.
• Pengguna kelas tidak tahu bagaimana kelas menyimpan datanya. Sebuah kelas dapat
mengubah tipe data dari properti dan pengguna kelas tidak perlu mengubah apapun.
4.4 Latihan
1. Buatlah proyek baru, dan kelas EncapTest.java seperti pada contoh program berikut:
Program EncapTest.java
30
Program EncapTest.java
Program TestEnscapsulasi.java
encap.setName("James");
encap.setAge(20);
encap.setIdNum("12343ms");
4.5 Tugas
1. Buatlah program yang memanfaatkan sifat enkapsulasi untuk menghitung keliling dan
luas lingkaran.
2. Tambahan tugas dari dosen pengampu.
31
BAB 5
Constructor
5.2 Indikator
A. Constructor
32
Contoh penggunaan constructor:
B. Karakteristik Constructor
1. Method constructor harus memiliki nama yang sama dengan nama class
2. Tidak mengembalikan suatu nilai (tidak ada keyword return)
3. Satu kelas memiliki lebih dari constructor (overloading constructor)
4. Dapat ditambah access modifier public, private, protected maupun default
5. Suatu constructor bisa dipanggil oleh constructor lain dalam satu kelas
C. Overloading Constructor
Seperti yang telah dijelaskan poin 3 pada karakteristik constructor bahwa dalam sebuah
class dapat memiliki lebih dari satu constructor. Yang membedakan antara constructor yang
satu dengan yang lainnya adalah jumlah parameter dan tipe data di dalamnya. Struktut
Overloading Constructor adalah sebagai berikut.
33
Contoh penggunaan constructor:
Pada contoh di atas, anda melihat class Login dimana memiliki 2 constructor. Selain
itu, terdapat perbedaaan cara membuat objek (instance of class) dengan menggunakan
overloading constructor di class Utama. Jika anda ingin membuat instance of class dengan
method Login tanpa parameter adalah sebagai berikut:
Pembuatan objek di atas akan memberikan nilai set default username dan password
berupa admin dan 12345. Sedangkan jika anda ingin membuat user sendiri (misal:
username=edo, password=pb0) melalui instance of class dengan method Login menggunakan
parameter adalah sebagai berikut:
D. Overloading
Overloading merupakan suatu mekanisme yang memungkinkan kita untuk membuat
lebih dari satu method dengan nama yang sama. Namun dengan ketentuan bahwa setiap
method harus memiliki parameter yang berbeda, baik berbeda dari nama parameternya, atau
berbeda dari tipe datanya, atau bahkan berbeda jumlah parameternya. Overload dapat
dilakukan terhadap constructor dan juga method.
34
E. Perbedaan menggunakan Constructor dengan method Setter()
Jika anda melihat dengan teliti, anda pasti akan bertanya-tanya “lalu apa perbedaan
penggunaan setter() dengan constructor?”. Dalam method setter(), pertama kali obyek dibuat
dari sebuah kelas (instance of class). Setelah objek terbentuk, kemudian objek tersebut diberi
atribut. Berbeda dengan constructor.
Dalam constructor, obyek yang dibuat dari sebuah kelas (instance of class) langsung diberi
atribut. Berikut adalah analogi perbedaan setter() dan constructor.
Analogi setter()
Analogi constructor
5.4 Latihan
Berdasarkan contoh di atas tentang login, buatlah 2 buah class yang terdiri dari class
Login dan class utama.
Class Login harus memiliki beberapa ketentuan sebagai berikut:
o Atribut berisi username dan password
o Terdapat 2 buah constructor Login. Constructor pertama tidak memiliki parameter
dan memiliki nilai default username=”admin” dan password=”12345”. Sedangkan
constructor kedua memiliki parameter untuk mengeset nilai username dan password
berdasarkan inputan user.
o Terdapat method setter dan getter untuk mengeset/merubah dan mengambil nilai
dari username dan password
Sedangkan pada Class utama digunakan untuk memanggil class Login.
Ketika class utama dijalankan, hasilnya akan tampak seperti di bawah ini:
35
Jika pilihan = 1, maka akan tampil sebagai berikut:
36
Jika pilihan = 4, maka akan tampil sebagai berikut:
Jawabannya adalah…
Skema diagram digunakan untuk membantu anda dalam membantu logika anda untuk
pembuatan program. Tanda “-“ dilambangkan sebagai private. Sedangkan tanda “+”
dilambangkan sebagai public. Berikut adalah skema diagramnya.
37
Langkah 2: class Login (ketikkan script berikut)
Setelah anda membuat class Login, simpan file tersebut dengan nama Login.java. Di
dalam class Login, saya juga menyediakan tempat untuk mendeklarasikan variabel,
setter dan getter.
b. Mendeklarasi variabel yang dibutuhkan
Setelah kita membuat kerangka class, maka diperlukan pendeklarasian variabel yang
nantinya digunakan sebagai tempat menyimpan data yang bersifat sementara
(temporary). Gambar di bawah ini menunjukkan
pendeklarasian variabel.
c. Mendeklarasi constructor
Setelah membuat variabel yang dibutuhkan pada class Login, langkah selanjutnya anda
membuat constructor login. Constructor ini nantinya akan digunakan dalam class
Utama. Gambar di bawah ini menunjukkan deklarasi constructor.
38
Coba perhatikan kembali script yang telah anda buat seperti gambar di atas. Seperti
halnya dengan penggunaan method setter(), di dalam pembuatan constructor Login
dengan parameter, anda juga dapat menggunakan keyword this. Penggunaan keyword
this akan mengacu kepada variabel yang dideklarasikan pada class Login (lihat script
yang diberi kotak berwarna biru pada gambar di bawahnya). Apabila variabel tersebut
tersebut tidak diberi keyword this, maka variabel tersebut akan mengacu kepada
variabel yang dideklarasikan pada parameter constructor (lihat script yang diberi kotak
berwarna hijau pada gambar di bawahnya). Penggunaan keyword this dapat digunakan
atau tidak (optional) apabila ada perbedaan deklarasi nama variabel pada class Login
(untuk lebih jelas mengenai keyword this, anda dapat melihat modul 1).
Setelah membuat variabel yang dibutuhkan pada class Login, langkah selanjutnya anda
buat method setter untuk masing-masing variabel. Hal ini bertujuan untuk mengeset
atau merubah nilai variabel username dan password sesuai dengan permintaan soal
39
pada menu yang ke-2 di class Utama nanti. Perlu diketahui pula, bahwa dalam
pembuatan variabel pada parameter di method setter, harus sesuai dengan tipe data pada
variabel yang dideklarasikan di kelas. Gambar di bawah ini menunjukkan deklarasi
setter.
Setelah membuat method setter, anda tinggal membuat method getter untuk mengambil
nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel
pada class Login yang nantinya akan kita kembalikan ke dalam class Utama. Perlu
diketahui pula, bahwa dalam pembuatan variabel pada parameter di method getter,
harus sesuai dengan tipe data pada variabel yang dideklarasikan di kelas. Gambar di
bawah ini menunjukkan deklarasi getter.
40
Langkah 3: class Utama (ketikkan script berikut)
Setelah anda membuat class Utama, simpan file tersebut dengan nama Utama.java. Di
dalam class inilah, program anda akan dijalankan. Sebagai catatan, dalam pembuatan
class di atas, saya sudah menambahkan class BufferedReader (line 6) yang berada pada
package java.io.* (line 1) yang digunakan untuk menerima inputan user.
b. Membuat instance of class
Setelah anda membuat class Utama, langkah berikutnya yang anda lakukan adalah
membuat sebuah objek yang bertipe class Login. Pembuatan variabel dengan bertipe
kelas itulah yang dinamakan instance of class (untuk penjelasannya, dapat anda lihat
pada modul 1). Misalkan, objek yang saya buat adalah user1 dan user2, dimana user1
menggunakan constructor Login tanpa parameter, sedangkan user2 menggunakan
constructor Login dengan parameter.
Coba perhatikan kembali pembuatan instance of class. Pada line 9, objek “user1” yang
telah terbentuk akan mereferens ke constructor Login tanpa parameter. Sedangkan pada
41
line 10, kita mendeklarasikan objek “user2” bertipe class Login, dimana nilai yang kita
berikan masih belum diketahui. Karena tipe data username dan password bertipe String,
maka saya menggunakan tanda petik ganda (“ ”) untuk memberi nilai awal berupa
kosong. Variabel user 2 yang telah dibuat nantinya akan digunakan pada case 3.
c. Membuat menu dan perulangan menu
Menu digunakan untuk mempermudah user dalam melakukan transaksi, seperti halnya
buku menu yang disajikan seorang pelayan di sebuah restoran. Dalam pembuatan
menu, diperlukan tombol “next” dan “back” sehingga user dapat leluasa memposisikan
diri pada transaksi yang ingin dia lakukan. Untuk itulah, diperlukan perulangan menu
guna mengantisipasi hal itu. Gambar di bawah ini menunjukkan pembuatan menu dan
perulangan menu.
Line 15-23 menunjukkan menu yang kita butuhkan dalam contoh soal di atas.
Sedangkan proses perulangan menu, saya menggunakan while yang berada di luar
menu (bagi anda yang tidak terbiasa menggunakan “while”,
Setelah menu dan perulangan menu selesai kita buat, maka kita membutuhkan inputan
user untuk memilih menu tersebut. Berikut adalah contoh script-nya.
42
Sekedar tambahan, “System.out.println();” pada line 29 hanya digunakan untuk
memberikan jarak antara proses dengan inputan dari user.
e. Mengecek inputan user
Inputan user yang nantinya akan diisi, akan menentukan pilihan yang dieksekusi (kayak
teroris aja ya… ). Untuk itu, dibutuhkan, pengecekan inputan user dengan menu yang
dipilih. Di sini, saya menggunakan switch…case… dikarenakan penggunaannya lebih
mudah dalam mengecek sebuah menu.
Sekedar tambahan, dalam setiap case jangan lupa menambahkan break yang bertugas
untuk menghentikan proses pengecekan menu apabila salah satu case sudah terpenuhi
dan telah dieksekusi. Penggunaan default ditujukan apabila pilihan 1,2,3 atau 4 tidak
43
sesuai dengan inputan user. Jika anda perhatikan baik-baik, “System.exit(0);” pada line
54 bertujuan untuk keluar dari menu dan mengakhiri program.
f. Mengisi Case 1 (Login Admin)
Ketika user memilih inputan menu no. 1, maka dilakukan beberapa proses sebagai
berikut:
• Line 36-39: berisi permintaan inputan username dan password yang nantinya akan
diisi oleh user
• Line 44-51: berisi pengecekan apakah user dan password yang diinputkan sesuai
dengan isi data user dan password pada class Login. Jika hasilnya bernilai true,
maka program akan mencetak tulisan *** Login Sukses ***. Jika hasilnya bernilai
false, maka program akan mencetak tulisan *** Login Gagal ***
Ketika user memilih inputan menu no. 2, maka dilakukan beberapa proses sebagai
berikut:
• Line 60-63: berisi permintaan inputan password lama dan password baru yang
nantinya akan diisi oleh user
• Line 67-75: berisi pengecekan apakah password lama yang diinputkan sesuai dengan
isi password yang sudah ada pada class Login. Jika hasilnya bernilai true, maka
program akan merubah password lama dengan password baru dan kemudian
mencetak tulisan *** Password berhasil dirubah***. Jika hasilnya bernilai false,
44
maka program akan mencetak tulisan *** Anda salah memasukkan password
lama ***
5.5 Tugas
Ketika user memilih inputan menu no. 3, maka dilakukan beberapa proses sebagai
berikut:
• permintaan inputan username dan password yang nantinya akan diisi oleh user
• setelah anda membuat username dan password baru, program akan mencetak tulisan
*** User telah berhasil dibuat *** (line 91).
45
2. Mengisi Case 4 (Lihat Data User)
Untuk dapat mengetahui apakah username dan password yang anda buat berhasil
masuk ke dalam class Login, anda dapat memilih case 4 untuk melihat data user.
Ketika user memilih inputan menu no. 4, maka dilakukan beberapa proses sebagai
berikut:
a. mencetak isi data username dan password yang sudah ada pada variabel user 1.
Apabila anda melakukan perubahan password admin dari nilai default-nya
adalah 12345 pada case 2, berarti data user yang ditampilkan adalah username
admin dengan password yang sudah anda rubah.
b. mencetak isi data username dan password yang sudah anda buat pada case 3
46
BAB 6
Pewarisan (Inheritance)
6.1 Capaian Pembelajaran
6.2 Indikator
Misalkan dalam Game, kita akan membuat class-class musuh dengan perilaku yang berbeda.
47
Kode untuk masing-masing kelas seperti ini:
Class Enemy adalah class induk yang memiliki anak Zombie, Pocong, dan Burung. Apapun
properti yang ada di class induk, akan dimiliki juga oleh class anak. Lalu bagaimana bentuk
kodenya dalam Java? Bentuk kodenya akan seperti ini:
48
File: Enemy.java
File: Zombie.java
class Zombie extends Enemy {
class Enemy { void walk(){
String name; System.out.println("Zombie jalan-
jalan");
int hp;
int attackPoin; }
}
void attack(){
Pada class anak, kita menggunakan kata kunci extends untuk menyatakan kalau dia adalah
class turunan dari Enemy.
File: Pocong.java
File: Burung.java
49
6.4.Latihan
Berikut ini merupakan contoh program Java inheritance. Dalam contoh ini anda dapat
mengamati 2 class yaitu Kalkulasi dan Kalkulasiku. Dengan menggunakan kata kunci
extends, Kalkulasiku mewarisi penambahan dan pengurangan methods dari class Kalkulasi.
Buat projek baru dengan nama Kalkulasiku.java dan silahkan buat program seperti dibawah
ini, kemudian kompile dan jalankan.
class Kalkulasi{
int z;
z = x + y;
z = x - y;
z = x * y;
int a = 10;
int b = 5;
tes.penambahan(a, b);
tes.pengurangan(a, b);
tes.perkalian(a, b);
}
}
50
a. Simpan program tersebut dengan nama Kalkulasiku.java, kemudian lakukan kompilasi.
b. Hasil luaran program adalah
Hasil Penambahan : 15
Hasil Pengurangan : 5
Hasil Perkalian : 50
c. Berikan penjelasan mengenai program tersebut
6.5. Tugas
2. Diketahui class diagram sebagai berikut. Buatlah program yang berfungsi untuk
menghitung luas dan keliling
51
MODUL 7
Polimorfisme (Polymorphism)
7.2 Indikator
Saya mempunyai sebuah kata “bisa” dan kata tersebut akan saya gunakan dalam kalimat
sebagai berikut:
a. Praktikan bisa memahami konsep Polymorphism dalam Praktikum Pemrograman
Berorientasi Objek
b. Ular itu mempunyai bisa yang sangat berbahaya
Dari 2 kalimat berikut, dapatkah anda mengetahui arti dari kata “bisa” dalam kalimat
yang saya berikan tadi? Apakah arti dari kata “bisa” antar satu kalimat dengan kalimat yang
lain memiliki arti yang sama?
Kata “bisa” pada kalimat pertama memiliki arti dapat atau mampu. Sedangkan kata
“bisa” pada kalimat kedua memiliki arti racun. Dalam kalimat di atas, kata yang sama
memiliki 2 makna yang berbeda. Itulah salah satu konsep Polymorphism. Untuk lebih jelas
mengenai konsep polymorhism, saya akan menjelaskannya pada sub bab berikutnya.
52
A. Polymorphism
Setiap hewan memiliki suara. Namun suara pada masing-masing hewan berbeda-beda.
Perilaku yang berbeda-beda itulah yang menjadi ciri khas polymorphism. Penggunaan teknik
polymorphism dapat diketahui melalui pembuatan instance-of-class pada class Utama.
Seperti halnya gambar di atas, maka pendeklarasian objek yang dibuat (di-instanskan) berasal
dari class induknya, yakni class Hewan. Sehingga objek tersebut berbentuk array-of-class.
Penerapan konsep polymorphism dapat dilihat di soal latihan.
Method dari kelas turunan yang akan dieksekusi, dipanggil oleh objek dari kelas induk
Nama method yang digunakan pada kelas induk harus ditulis ulang (overriding method)
pada kelas turunannya, dengan asumsi nama dan tipe data method harus sama
B. Overriding Method
Overriding method adalah proses pendeklarasian ulang nama method pada kelas utama
kepada kelas turunannnya, Dalam pembuatan overriding method, nama dan tipe data method
harus sama dengan kelas induknya guna pembuatan polymorphism. Untuk lebih jelasnya,
akan saya bahas pada soal latihan.
53
7.4 Soal Latihan
Buatlah class untuk menghitung Berat Badan Ideal sesuai dengan rancangan gambar di
atas! Rumus hitung berat badan ideal adalah sebagai berikut:
Laki-Laki = (tinggi badan(cm)-100) kg x 90%
Tambahkan pula class Utama yang digunakan untuk memanggil class Mahasiswa.
Ketika class Utama dijalankan, hasilnya akan tampak seperti di bawah ini:
Jawabannya adalah…
Setelah anda membaca soal tersebut dengan baik dan seksama, langkah pertama yang
harus anda lakukan adalah mengidentifikasi class mana yang harus dibuat terlebih dahulu.
Langkah 1: class Manusia (ketikkan script berikut)
54
Setelah anda membuat class Manusia, simpan file tersebut dengan nama Manusia.java.
Di dalam class Manusia, saya juga menyediakan tempat untuk mendeklarasikan
variabel, constructor, getter dan method HtgBBI() untuk menghitung berat badan ideal.
b. Mendeklarasi variabel yang dibutuhkan
Setelah kita membuat kerangka class, maka diperlukan pendeklarasian variabel yang
nantinya digunakan sebagai tempat menyimpan data yang bersifat sementara
(temporary). Gambar di bawah ini menunjukkan
pendeklarasian variabel.
c. Mendeklarasi constructor
Setelah membuat variabel yang dibutuhkan pada class Manusia, langkah selanjutnya
anda membuat constructor Manusia. Constructor ini nantinya akan digunakan dalam
class Laki_Laki dan class Perempuan. Gambar di bawah ini menunjukkan deklarasi
constructor.
Coba perhatikan kembali script yang telah anda buat seperti gambar di atas. Karena
terdapat perbedaan deklarasi nama variabel pada class Manusia dan deklarasi variabel
pada constructor Manusia, maka keyword this boleh digunakan atau tidak (optional).
Untuk lebih jelas mengenai keyword this, anda dapat melihat modul 1.
55
d. Membuat method getter
Setelah membuat constructor, anda tinggal membuat method getter untuk mengambil
nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel
pada class Manusia yang nantinya akan kita gunakan ke dalam class Laki_Laki maupun
class Perempuan. Perlu diketahui pula, bahwa dalam pembuatan variabel pada
parameter di method getter, harus sesuai dengan tipe data pada variabel yang
dideklarasikan di kelas. Gambar di bawah ini menunjukkan deklarasi getter.
Setelah membuat method getter(), anda tinggal membuat method HtgBBI() yang
bertugas untuk menghitung berat badan ideal berdasarkan tinggi badan. Karena di
dalam class Manusia, belum terdapat rumus (hanya mendeklarasikan saja) dan meminta
nilai balik (return), maka diberikan nilai default 0.0. Gambar di bawah ini menunjukkan
deklarasi method HtgBBI().
56
Langkah 2: class Laki_Laki (ketikkan script berikut)
Setelah anda membuat class Laki_Laki, simpan file tersebut dengan nama
Laki_Laki.java. Di dalam class Laki_Laki, terdapat penggunaan extends yang
menunjukkan bahwa class Laki_Laki merupakan turunan dari class Manusia.
Coba perhatikan kembali script yang telah anda buat seperti gambar di atas. Pada
constructor Laki_Laki, terdapat keyword “super”. Keyword ini akan memanggil
constructor Manusia (sesuai isi parameter) yang merupakan class induk. Sedangkan
pada method HtgBBI() dilakukan pendeklarasian kembali (overriding method) sesuai
dengan kelas induknya, dimana method HtgBBI() diberi rumus untuk menghitung berat
badan ideal laki-laki.
57
Langkah 3: class Perempuan (ketikkan script berikut)
Setelah anda membuat class Perempuan, simpan file tersebut dengan nama Perempuan.java.
Di dalam class Perempuan, terdapat penggunaan extends yang menunjukkan bahwa class
Perempuan merupakan turunan dari class Manusia.
Seperti halnya dengan class Laki_Laki, class Perempuan memiliki constructor dan method
HtgBBI() yang sama. Perbedaannya terletak pada nama class, nama constructor, dan isi
rumus method HtgBBI().
Setelah anda membuat class Utama, simpan file tersebut dengan nama Utama.java. Di
dalam class inilah, program anda akan dijalankan. Sebagai catatan, dalam pembuatan
class di atas, saya sudah menambahkan class BufferedReader (line 6) yang berada pada
package java.io.* (line 1) yang digunakan untuk menerima inputan user.
b. Membuat instance of class
Setelah anda membuat class Utama, langkah berikutnya yang anda lakukan adalah
membuat sebuah objek yang bertipe kelas induknya, yaitu class Manusia. Di sinilah
58
konsep polymorphism digunakan. Karena class Manusia memiliki 2 kelas turunan,
maka objek yang kita buat berbentuk array-of-class. Untuk itu, diperlukan panjang
elemen array guna menampung data, baik yang terdapat pada class Laki_Laki maupun
class Perempuan (dimisalkan panjang elemen adalah 2). Perlu diketahui pula, bahwa
panjang elemen array yang diberi nilai 2, bukan berasal dari 2 kelas turunan pada kelas
induknya, melainkan karena inputan yang ingin dilakukan adalah sebanyak 2 kali. Data
bisa diperoleh dari 2 orang laki-laki, 2 orang perempuan, atau 1 orang laki-laki dan 1
orang perempuan.
Pada line 20, yang berisi “x++;”, terdapat proses increment untuk menambah isi+1pada
variable x
59
Berikut adalah contoh script-nya.
e. Mengecek inputan user dan mencetak penghitungan berat badan ideal Setelah
membuat inputan user, maka dilakukan pengecekan apakah jenis kelamin yang dipilih
adalah laki-laki atau perempuan. Hal ini akan menentukan kelas turunan mana yang
akan diakses.
• Line 24: penggunaan method “equals()” untuk mengecek inputan bertipe String
dan String. Sedangkan method “toUpperCase()” digunakan untuk menconvert
semua inputan user (baik ditulis dalam huruf keci atau huruf besar) menjadi
huruf besar semua.
• Line 26 dan line 32: menunjukkan penggunaan objek pada kelas turunannya.
60
7.5 Tugas
61
MODUL 8
Kelas Abstrak (Abstract Class)
Mahasiswa dapat mengenal dan memahami konsep abstract class, abstract method dan
keyword “final” serta penerapannya dalam konsep OOP
8.2 Indikator
Mampu menjelaskan dan mengimplementasika konsep abstract class, abstract method dan
keyword “final” serta penerapannya dalam konsep OOP
Anda pasti masih ingat contoh program yang menghitung berat badan ideal berdasarkan
tinggi badan. Di dalam contoh tersebut, terdapat class Manusia, class Laki_Laki, dan class
Perempuan seperti contoh bagan di bawah ini.
Dalam abstract class, class tertinggi merupakan kelas Manusia. Apabila dalam kelas
abstract terdapat abstract method, maka method tersebut hanya mendeskripsi method tanpa
isi methodnya. Untuk lebih jelas, simak konsep abstract method di bawah ini.
62
A Abstract Class
Abstract Class merupakan kelas yang berada pada posisi tertinggi dalam sebuah
hierarki kelas. Sesuai dengan namanya, abstract class dapat didefinisikan pada class itu
sendiri. Berikut adalah cara mendeklarasikan abstract class:
Contoh:
Di dalam abstract class dapat juga diberi abstract method (optional). Penggunaan
abstract method tidak diperlukan statement dalam method tersebut.
Berikut adalah cara mendeklarasikan abstract method pada abstract class:
Contoh:
Catatan:
Apabila dalam abstract class terdapat abstract method dan kelas tersebut diturunkan ke
kelas turunannya, maka method tersebut harus dideklarasikan ulang (overriding method)
dengan diberi statement pada isi methodnya. Untuk lebih jelas penggunaan overriding
method, dapat dilihat pada soal latihan
Apabila class tersebut merupakan abstract class, maka class tersebut bisa terdapat abstract
method atau tidak (optional). Sedangkan apabila kelas tersebut, terdapat abstract method,
maka kelas tersebut wajib berbentuk abstract class
63
B. Keyword “final”
Keyword “final” digunakan untuk mencegah suatu class diturunkan atau suatu method
dilakukan pendeklarasian ulang (overriding method). Berikut adalah cara mendeklarasikan
final dalam class:
Contoh:
berikut:
Contoh
Untuk lebih detail dalam penggunaan keyword “final”, akan dibahas lebih lanjut
melalui soal latihan
64
8.4 Latihan
Buatlah class untuk menghitung Berat Badan Ideal sesuai dengan rancangan gambar di
atas! Rumus hitung berat badan ideal adalah sebagai berikut:
Laki-Laki = (tinggi badan(cm)-100) kg x 90%
Tambahkan pula class Utama yang digunakan untuk memanggil class Mahasiswa.
Ketika class Utama dijalankan, hasilnya akan tampak seperti di bawah ini:
Jawabannya adalah…
Ketika anda perhatikan baik-baik bagan soal latihan modul ini dengan soal latihan
modul sebelumnya, maka anda akan menemukan perbedaan sebagai berikut:
65
menjadi
menjadi
Setelah anda membuat class Manusia, simpan file tersebut dengan nama Manusia.java.
Di dalam class Manusia, saya juga menyediakan tempat untuk mendeklarasikan
variabel, constructor, getter dan method HtgBBI() untuk menghitung berat badan ideal.
b. Mendeklarasi variabel yang dibutuhkan
Setelah kita membuat kerangka class, maka diperlukan pendeklarasian variabel yang
nantinya digunakan sebagai tempat menyimpan data yang bersifat sementara
(temporary). Gambar di bawah ini menunjukkan pendeklarasian variabel.
66
c. Mendeklarasi constructor
Setelah membuat variabel yang dibutuhkan pada class Manusia, langkah selanjutnya
anda membuat constructor Manusia. Constructor ini nantinya akan digunakan dalam
class Laki_Laki dan class Perempuan. Gambar di bawah ini menunjukkan deklarasi
constructor.
Coba perhatikan kembali script yang telah anda buat seperti gambar di atas. Karena
terdapat perbedaan deklarasi nama variabel pada class Manusia dan deklarasi variabel
pada constructor Manusia, maka keyword this boleh digunakan atau tidak (optional).
Untuk lebih jelas mengenai keyword this, anda dapat melihat modul 1.
Setelah membuat constructor, anda tinggal membuat method getter untuk mengambil
nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel
pada class Manusia yang nantinya akan kita gunakan ke dalam class Laki_Laki maupun
class Perempuan. Perlu diketahui pula, bahwa dalam pembuatan variabel pada
parameter di method getter, harus sesuai dengan tipe data pada variabel yang
dideklarasikan di kelas. Gambar di bawah ini menunjukkan deklarasi getter.
67
e. Membuat method HtgBBI()
Setelah membuat method getter(), anda tinggal membuat method HtgBBI() yang
bertugas untuk menghitung berat badan ideal berdasarkan tinggi badan. Karena method
HtgBBI() merupakan abstract method, maka method tersebut tidak terdapat isi method.
Gambar di bawah ini menunjukkan deklarasi method HtgBBI().
Karena class Laki_Laki pada soal latihan 4 = soal latihan 5, maka script ini tidak mengalai
perubahan. Adapun scriptnya adalah sebagai berikut:
68
Setelah anda membuat class Laki_Laki, simpan file tersebut dengan nama
Laki_Laki.java. Di dalam class Laki_Laki, terdapat penggunaan extends yang
menunjukkan bahwa class Laki_Laki merupakan turunan dari class Manusia.
Coba perhatikan kembali script yang telah anda buat seperti gambar di atas. Pada
constructor Laki_Laki, terdapat keyword “super”. Keyword ini akan memanggil
constructor Manusia (sesuai isi parameter) yang merupakan class induk. Sedangkan
pada method HtgBBI() dilakukan pendeklarasian kembali (overriding method) sesuai
dengan kelas induknya, dimana method HtgBBI() diberi rumus untuk menghitung berat
badan ideal laki-laki.
Langkah 3: class Perempuan (ketikkan script berikut)
Setelah anda membuat class Perempuan, simpan file tersebut dengan nama
Perempuan.java. Di dalam class Perempuan, terdapat penggunaan extends yang
menunjukkan bahwa class Perempuan merupakan turunan dari class
Manusia.
Seperti halnya dengan class Laki_Laki, class Perempuan memiliki constructor dan
method HtgBBI() yang sama. Perbedaannya terletak pada nama class, nama
constructor, dan isi rumus method HtgBBI().
69
Keyword “final” pada line 1 digunakan untuk mencegah pembuatan kelas baru dari
kelas turunan perempuan. Sedangkan keyword “final” pada line 10 digunakan untuk
mencegah pendeklarasian ulang (overriding method) pada kelas turunannya.
Langkah 4: class Utama (ketikkan script berikut)
Untuk penjelasan script pada class Utama, dapat dilihat pada soal latihan modul 4. Perlu
diketahui pula, bahwa instance of class pada class Utama tidak wajib menggunakan
array of Class (konsep Polymorphism), tapi anda bisa juga membuat objek
berdasarkan kelas turunannya.
8.5 Tugas
1. Buat program untuk mencetak ciri makhluk hidup (manusia, hewan, tumbuhan). Ciri
ciri didefiniskan kedalam suatu method yang bertipe abstrak dalam sebuah abstract
class. Kemudian buatlah class baru (manusia, hewan, dan tumbuhan) untuk meng-
extends class tersebut.
2. Diberikan oleh dosen pengampu
70
BAB 9
Interface
Mahasiswa dapat mengenal dan memahami konsep interface, serta penerapan dalam
interface dalam konsep OOP
9.2 Indikator
Ilustrasi 1
Ilustrasi 2
Meminjam kamus adalah salah satu alternatif jawaban dalam ilustasi 1. Mengapa?
Karena di dalam kamus tersimpan kumpulan kata (atau biasa disebut dengan vocabulary)
yang anda butuhkan untuk membantu anda dalam
mengartikan kata tersebut
Demikian juga untuk ilustrasi 2. Apabila jawaban anda adalah melihat daftar isi,
berarti anda mengerti kegunaan daftar isi. Karena di dalam daftar isi, terdapat halaman dari
tiap bab yang akan membantu anda dalam mempermudah mencari informasi yang anda
butuhkan
Kamus dan daftar isi merupakan alat bantu berupa kumpulan informasi sebagai sarana
pendukung dalam membantu anda untuk mengolah dan mengembangkan informasi yang
anda peroleh. Seperti halnya ketika anda menggunakan Interface pada pemrograman berbasis
71
objek. Interface berisi sekumpulan konstanta/deklarasi method tanpa menyertakan/
menuliskan body methodnya. Method atau variabel yang terdapat pada kelas Inteface dapat
digunakan lebih dari satu kelas dengan cara memanggil kelas interface tersebut.
Interface adalah kumpulan method yang hanya memuat deklarasi dan struktur method
tanpa detail implementasinya. Cara mendeklarasikan interface adalah sebagai berikut:
Contoh:
Pada contoh di atas, method yang dideklarasikan pada interface Operasi tidak terdapat
statement apapun, baik itu rumus atau hanya sebuah nilai balik di dalamnya. Hal ini
dikarenakan interface hanyalah sebuah berisi kumpulan konstanta maupun method tanpa
menyertakan/ menuliskan body methodnya.
Perlu diketahui pula, bahwa an interface is not a class and classes can only
implement interfaces (sebuah interface bukanlah sebuah kelas dan kelas hanya bisa
mengimplementasi interface). Sehingga jangan anda menganggap bahwa interface adalah
super class dimana memiliki kelas trurunan.
Penggunaan (implementasi) interface dalam sebuah kelas dapat anda lihat melalui skema
OOP di bawah ini:
Coba anda lihat anak panah yang berwarna ungu tersebut. Anak panah itu merupakan
gambaran bahwa class Kalkulator merupakan implementasi dari interfaces Operasi,
dimana method-method yang terdapat pada interface Operasi harus dideklarasi ulang
(overriding method) pada kelas Kalkulator. Interface dilambangkan dengan anak panah
dengan garis putus-putus, sedangkan inheritance dilambangkan dengan anak panah dengan
garis lurus ( ).
Dalam pemrograman OOP, implementasi interfaces menggunakan keyword
implements. Berikut adalah cara mengimplementasikan interface ke dalam pemrograman
Java:
72
Contoh:
Agar anda lebih memahami bagaimana implementasi interface dalam sebuah kelas,
simak contoh latihan di bawah ini.
Berdasarkan contoh di atas tentang kalkulator, buatlah program sesuai dengan skema di
bawah ini:
73
Tambahkan pula class Utama yang digunakan untuk memanggil class Kalkulator.
Ketika class Utama dijalankan, hasilnya akan tampak seperti di bawah
ini:
Jawabannya adalah…
Setelah anda membaca soal tersebut dengan baik dan seksama, langkah pertama yang
harus anda lakukan adalah mengidentifikasi class atau interface yang harus dibuat terlebih
dahulu.
Langkah 1: interface Operator (ketikkan script berikut)
Setelah anda membuat interface Operasi, simpan file tersebut dengan nama
Operasi.java. Di dalam interface Operasi, saya juga menyediakan tempat untuk
mendeklarasikan method yang akan digunakan pada class Kalkulator.
b. Mendeklarasi method
Dalam interface Operator, anda cukup mendeklarasikan method tanpa isi method (body
method)
74
Langkah 2: class Kalkulator (ketikkan script berikut)
Error yang berisi Kalkulator is not abstract and does not override abstract method
Pembagian() in Operasi menandakan bahwa method Penjumlahan(), Pengurangan(),
Perkalian(), Pembagian() harus dideklarasikan ulang (overriding method) ke dalam
class Kalkulator. Error ini akan terus ada sampai anda menyelesaikan poin (e).
Setelah kita membuat kerangka class, maka diperlukan pendeklarasian variabel yang
nantinya digunakan sebagai tempat menyimpan data yang bersifat sementara
(temporary). Gambar di bawah ini menunjukkan
pendeklarasian variabel.
c. Mendeklarasi constructor
Setelah membuat variabel yang dibutuhkan pada class Kalkulator, langkah selanjutnya
anda membuat constructor Kalkulator. Constructor ini nantinya akan digunakan dalam
class Utama. Gambar di bawah ini menunjukkan
deklarasi constructor.
75
Pada gambar di atas, saya menggunakan Overloading Constructor (bagi yang lupa
tentang Overloading Constructor, anda dapat melihat kembali pada modul 2 tentang
Constructor. Constructor pertama digunakan untuk standard awal dalam melakukan
instance of class. Sedangkan constructor kedua digunakan untuk mengeset data
bilangan pertama dan bilangan kedua yang diperoleh dari kelas Utama.
Setelah membuat constructor, anda tinggal membuat method getter untuk mengambil
nilai dari masing-masing variabel. Hal ini bertujuan untuk mengambil nilai dari variabel
pada class Kalkulator yang nantinya akan kita kembalikan ke dalam class Utama. Perlu
diketahui pula, bahwa dalam pembuatan variabel pada parameter di method getter,
harus sesuai dengan tipe data pada variabel yang dideklarasikan di kelas. Gambar di
bawah ini menunjukkan deklarasi getter.
76
e. Implementasi method
Perlu diketahui pula, bahwa method Penjumlahan() dan Pengurangan merupakan sub
program berjenis prosedur. Sedangkan method Perkalian() dan Pembagian() merupakan
sub program berjenis fungsi. Untuk itu, ada perbedaan cara memanggil method dalam
kelas Utama.
77
Langkah 3: class Utama (ketikkan script berikut)
Keterangan:
Line 9 = deklarasi instance of class, dimana variabel tersebut bertipe kelas Kalkulator, yang
merupakan turunan dari kelas Operasi . Line 12-15 = inputan user, dimana bilangan 1
ditampung ke dalam variabel a dengan tipe data double. Sedangkan bilangan 2 ditampung ke
dalam variabel b dengan tipe data double. Line 17 = mentransfer data pada variable a dan b
ke dalam constructor Kalkulator. Line 19 = sebagai jarak antara isi input dan output ketika
program dijalankan. Line 22-26 = cara memanggil method Penjumlahan dan Pengurangan
yang merupakan sub program bertipe void. Karena di dalam isi void terdapat
System.out.println, maka pemanggilan method dilakukan di luar kelas. Line 28-30 =
cara memanggil method Penjumlahan dan Pengurangan yang merupakan sub program bertipe
void. Karena di dalam isi function tidak terdapat System.out.println dan hanya
mengembalikan return (nilai balik), maka pada class Utama, pemanggilan method dilakukan
di dalam System.out.println().
9.5. Tugas
Diberikan oleh dosen pengampu
78
BAB 10
Pemrograman Berbasis GUI (1)
10.2 Indikator
79
Pemrograman di dalam Netbeans berbasis pada project yang disimpan dalam format
package. Oleh sebab itu, setiap kali akan memulai pengembangan sebuah aplikasi, maka
programmer diharuskan membuat New Project dengan nama tertentu, yang kemudian nama
tersebut secara otomatis menjadi nama file dari kode program yang disimpan. Selain itu, pada
baris paling atas dari kode program akan tampil tulisan package <nama_proyek>, misalnya
package proyek_1, seperti yang terlihat pada gambar di atas.
80
Setelah new project berhasil dibuat, maka kita akan masuk ke dalam kode program
dengan nama Proyek_1.java. File inilah yang akan menjadi main class dari program kita.
C. Membuat Form
Untuk membuat sebuah form berbasis GUI, maka kita perlu membuat kelas baru
melalui menu ”File New File”, kemudian akan muncul jendela seperti gambar di bawah
ini.
Pada jendela seperti tampak pada gambar di atas, pastikan Project yang kita pilih adalah
Proyek_1, kemudian pilih ”Swing GUI Forms” pada bagian Categories, lalu pilih ”Jframe
Form” pada bagian File Types. Setelah itu klik ”Next”. Kemudian, masukkan nama kelas
yang ingin dibuat pada bagian Class Name. Sebagai contoh, coba ketikkan
”FormDataKaryawan” seperti terlihat pada gambar di bawah ini.
81
Jika sudah, klik tombol ”Finish”, maka Anda akan dibawa masuk ke dalam area desain GUI
pada Netbeans seperti tampak pada gambar di bawah ini.
82
Setelah desain GUI selesai dibuat, selanjutnya kita lakukan pengaturan pada
komponen jComboBox agar sesuai dengan masing-masing poin isian. Untuk itu, klik kanan
pada komponen jComboBox ”Pendidikan”, kemudian pilih ”Properties” pada bagian paling
bawah. Setelah tampil jendela Properties, maka lakukan pengeditan pada bagian ”model”
dengan cara mengklik tanda titik-titik pada bagian kanannya.
Setelah muncul jendela baru, isikanlah satu per satu kemungkinan nilai untuk
komponen Pendidikan, yakni D3, S1, S2, dan S3. Jika sudah, klik tombol ”OK”. Lakukan hal
yang sama untuk komponen jComboBox lainnya.
Selanjutnya, kita akan atur tampilan tabel agar sesuai dengan kebutuhan program
untuk menampilkan setiap data karyawan yang ditambahkan ke dalam program. Untuk itu,
klik kanan pada komponen jTable yang ada pada form, kemudian pilih ”Table Contents”.
Pada tab ”Columns” kita bisa mengganti nama header untuk setiap kolom sesuai dengan
83
kebutuhan kita, serta kita juga dapat menambah jumlah kolom pada tabel. Selain itu kita juga
bisa mengatur ukuran ”Prefered Size” untuk masing-masing kolom.
Lalu, pada tab ”Rows” ubah jumlah baris dari 4 menjadi 0. Jika sudah, klik tombol ”Close”,
maka seketika tampilan jTable pada form GUI kita akan berubah seperti ini:
Karena kita menggunakan jTable, maka kita perlu mengimpor library import
javax.swing.table.DefaultTableModel agar operasi pada jTable dapat dilakukan.
Setelah itu, kita juga perlu membuat objek baru yang bertipe DefaultTableModel. Lihat
gambar di bawah ini untuk lebih jelasnya.
84
E. Menulis Kode Aksi pada Tombol
Sebagaimana lazimnya sebuah tombol pada sebuah program komputer, ketika diklik
maka sesuatu akan diproses oleh program tersebut. Dengan kata lain, program akan
mengeksekusi sebuah aksi tertentu ketika tombol diklik oleh user. Pada contoh kali ini, aksi
yang akan dilakukan ketika tombol ”Tambah” ditekan ada dua:
1. Membaca nilai yang diinputkan oleh user, baik pada jTextField, maupun pada
jComboBox.
2. Menampilkan data yang telah diisi user ke dalam jTable.
Untuk itu, klik kanan pada tombol ”Tambah”, lalu pilih ”Events Action
ActionPerformed”, maka secara otomatis method jButton1ActionPerformed() akan
terbentuk pada area source code.
85
Setelah itu, kita ketikkan kode aksi pada method jButton1ActionPerformed() sebagai
berikut:
Pada kode program di atas bisa dilihat bahwa method getText() digunakan untuk membaca
data yang diinputkan oleh user melalui jTextField. Data yang dibaca tersebut secara otomatis
bertipe String. Tapi perhatikan pada baris ke-191 s.d. baris ke-193, di sana terdapat proses
konversi dari tipe String menjadi tipe int menggunakan method parseInt() milik objek
Integer. Hal ini dilakukan karena data dari field-field tersebut akan disimpan dalam variabel
bertipe int. Kemudian, kita juga bisa melihat bahwa terdapat method getSelectedItem()
untuk membaca item yang dipilih oleh user melalui komponen jComboBox.
86
Jalankan program melalui menu ”Run Run Project (Proyek_1)”.
87
BAB 11
Pengaksesan Basis Data
11.2. Indikator
88
Setelah itu, buka aplikasi web browser pada komputer Anda, lalu ketik URL:
localhost/phpmyadmin. Apabila Anda masuk ke halaman mesin pencari Google, coba
nonaktifkan dahulu sementara jaringan internet Anda. Jika sudah, Anda bisa mulai membuat
basis data baru dan membuat tabel baru seperti di bawah ini. Pada contoh ini, kita membuat
basis data dengan nama ”DataKaryawan” dan membuat sebuah tabel bernama ”Karyawan”
yang terdiri dari delapan buah kolom. Perhatikan gambar di bawah.
Kemudian buatlah kedelapan kolom pada tabel tersebut yang terdiri dari: ID,
NamaLengkap, TempatLahir, TglLahir, BulanLahir, TahunLahir, Pendidikan, dan Status.
Jadikan kolom/ atribut ID sebagai primary key dan set Auto increment. Jika sudah, maka
selanjutnya kita lakukan pengetikan kode di dalam Java.
89
B. Membangun Koneksi dengan JDBC
Pada package Proyek_1 yang telah kita buat pada bab sebelumnya, Lihat tab ”Projects”
pada bagian kiri Netbeans, lalu klik kanan pada ”Libraries”, kemudian pilih ”Add Library”.
Setelah itu, pilih ”MySQL JDBC Driver” pada kolom ”Available Libraries”.
Berikutnya, buka menu ”File New File”, lalu pilih ”Java” pada bagian Categories
dan pilih “Java Class” pada bagian File Types, lalu klik tombol “Next”. Setelah itu, pada
bagian Class Name, isi dengan “KoneksiDB”.
Pada kode program dari kelas KoneksiDB, kita tambahkan kode program seperti di bawah
ini:
90
Pada kode program di atas, kita deklarasikan sebuah variabel bertipe Connection.
Variabel ini kita beri nama ”koneksi”. Kemudian kita buat sebuah method bernama
getKoneksi() yang berfungsi untuk membuat koneksi antara aplikasi Java yang kita buat
dengan DBMS MySQL pada phpMyAdmin. Pada method tersebut, kita menginisialisasi tiga
buah variabel, yakni url, username, dan password. Variabel url berfungsi menyimpan
lokasi penyimpanan database di dalam localhost. Variabel username digunakan untuk
menyimpan username dari DBMS yang kita gunakan, dan variabel password digunakan
untuk menyimpan password dari DBMS yang kita gunakan. Apabila tidak ada password yang
diset, maka variabel password cukup diisi dengan karakter kosong (””).
Selanjutnya, kita tambahkan baris kode program di bawah ini untuk menyimpan data
ke database pada method jButton1ActionPerformed(). Letakkan kode di bawah ini di
bawah kode program yang sudah ada pada method jButton1ActionPerformed().
91
Apabila koneksi database berhasil dibangun dan proses INSERT query berhasil
dilakukan, maka seharusnya data yang diinputkan melalui aplikasi Java yang kita buat juga
tersimpan di dalam database MySQL. Perhatikan gambar di bawah ini.
Namun, jika Anda cermati, ternyata ada sedikit masalah pada aplikasi yang telah kita
bangun sejauh ini. Ketika Anda menutup aplikasi tersebut, lalu membukanya lagi, ternyata
data karyawan yang telah kita simpan sebelumnya tidak tampil pada tabel. Kenapa hal ini
bisa terjadi? Karena kita belum melakukan load data dari database setiap kali aplikasi dibuka.
Oleh karena itu, kita perlu membuat sebuah method baru lagi di dalam kelas
FormDataKaryawan yang berfungsi untuk melakukan load data dari database ke dalam tabel.
92
Setelah itu, kita panggil method loadData() tersebut di dalam constructor
FormDataKaryawan.
Maka, kini setiap kali kita membuka aplikasi FormDataKaryawan, secara otomatis semua
data yang tersimpan di dalam database akan dibaca dan ditampilkan di dalam tabel.
93
BAB 12
Membaca File dari Ms. Excel
12.2. Indikator
94
B. Mencetak file Excel
Pada dasarnya, proses mencetak atau menulis data ke dalam file excel adalah dengan
cara menempatkan data satu per satu ke dalam cell yang ada di dalam Excel. Penempatan
data tersebut ditentukan oleh koordinat cell yang dituju. Misalnya, kode s.addCell(new
Label(0, 0, "Hello World")) akan meletakkan kalimat ”Hello World” pada cell baris ke-
0 dan kolom ke-0, atau sama saja dengan cell A1.
Pada pembahasan ini, kita akan mempraktikkan bagaimana mencetak data yang ada
pada jTable agar tersimpan dalam file .xls. Sebelumnya, kita tambahkan dulu sebuah tombol
untuk melakukan aksi tersebut, kemudian kita akses method jButton2ActionPerformed()
dari tombol tersebut untuk kemudian kita isi kode program untuk mencetak file .xls. Sebagai
contoh, pada modul ini, tombol ”Export to Excel” kita letakkan pada bagian bawah sebelah
kanan dari jTable. Perhatikan gambar berikut ini untuk lebih jelasnya.
95
Pada gambar di atas kita membuat sebuah file baru pada direktori D: yang kita beri
nama DataKaryawan.xls (baris ke-291). Setelah itu, kita membuat pula sebuah sheet baru
bernama ”Karyawan” (baris ke-294). Pada baris ke-297 s.d. baris ke-305, kita membaca data
pada jTable secara cell per cell, kemudian mengalokasikan cell pada file DataKaryawan.xls
yang nantikan akan digunakan untuk menulis data yang dibaca tersebut. Selanjutnya, pada
baris ke-314 s.d. baris ke-315, kita menampilkan dialog box untuk menginformasikan kepada
user bahwa data telah berhasil ditulis dalam file Excel.
96
Pada tombol ”Baca File Excel”, kita klik dua kali sehingga secara otomatis Netbeans
akan membuatkan method jButton1ActionPerformed(). Pada method tersebut kita isikan
kode program di bawah ini:
*Catatan: Anda harus terlebih dahulu membuat table model untuk jTable yang Anda buat
pada FormBacaExcel. Cara membuat table model telah dijelaskan pada Bab 10.
97
Ketika program dijalankan dan tombol ”Baca File Excel” diklik, maka aplikasi akan
membaca file Excel yang telah disiapkan sebelumnya dan menampilkannnya ke dalam tabel.
98
Bab 13
Java Class Library
13.2. Indikator
B. Distribusi aplikasi
Aplikasi yang telah kita buat menggunakan Java dapat didistribusikan menjadi sebuah
aplikasi independen dengan cara mengkompilasi kode program Java tersebut menjadi file
berekstensi .jar. Jika kita menggunakan IDE Netbeans dalam membangun aplikasi, maka
proses kompilasi file .jar ini sangat mudah. Anda cukup masuk ke menu ”Run Clean and
Build Project”, maka secara otomatis Netbeans akan membuatkan file .jar pada direktori
”dist” pada project yang Anda buat.
99
Perlu diingat, apabila Anda membuat aplikasi yang terkoneksi dengan database
MySQL, maka Anda harus mengaktifkan dulu server database-nya, baru dapat menjalankan
aplikasi .jar. Jika Anda merasa kurang praktis menggunakan database yang tidak terintegrasi
di dalam aplikasi yang Anda buat, maka ada beberapa alternatif DBMS lain yang sifatnya
terintegrasi dengan aplikasi yang dibuat, misalnya: Java DB, Apache Derby, H2, atau
HSQLDB. DBMS tersebut memungkinkan kita membuat aplikasi yang terintegrasi dengan
DBMS di dalamnya, sehingga ketika aplikasi dijalankan, secara otomatis DBMS juga
diaktifkan.
13.4. Latihan
A. PEMBUATAN LIBRARY
Langkah-langkah pembuatan java library sebagai berikut
a. Klik File New Project Pilih Categories: Java, Project: Java Class Library.
b. Klik Next, kemudian berikan nama project dan pilih lokasi penyimpanan. Klik
Finish
100
c. Setelah klik finish, maka pada Project Browser akan muncul seperti pada gambar
berikut
d. Klik kanan pada Source Packages dan pilih New Java Packages…
f. Klik kanan pada package yang telah diberi nama tadi dan pilih New Java Class…
101
g. Beri nama class dan klik finish
102
Library yang sudah dibuild akan berada di folder /dist.
Klik Next, kemudian berikan nama project dan pilih lokasi penyimpanan. Klik
Finish.
Project baru akan muncul di project browser. Klik kanan pada Libraries yang ada di
project baru, kemudian pilih Add Library…
103
Klik Create Library…
Berikan nama library dan tipe library. Lalu tekan Ok
104
Maka pada project browser akan terlihat seperti gambar berikut
b. Membuat Aplikasi
Buatlah form baru seperti pada gambar berikut
Form terdiri dari tiga TextField, empat Label, dan empat Button.
TextField
- txtFirstNumber, untuk input angka pertama.
- txtSecondNumber, untuk input angka kedua.
- txtResult, untuk menampilkan hasil operasi.
Button
- btnSum, untuk penjumlahan.
- btnSubtract, untuk pengurangan.
- btnMultiple, untuk perkalian.
- btnDivide, untuk pembagian.
105
Agar form yang dibuat dapat tampil ketika program dijalankan, tuliskan sintaks
berikut pada main class project.
public class SimpleCalculator {
public static void main(String[] args) {
SimpleCalculatorFrame frame = new SimpleCalculatorFrame();
frame.setVisible(true);
}
}
106
errorMessage,
errorTitle,
JOptionPane.ERROR_MESSAGE);
}else{
double first = Double.parseDouble(firstNumber);
double second = Double.parseDouble(secondNumber);
double result = Calculator.subtract(first, second); // Pengurangan
txtResult.setText(String.valueOf(result));
}
}
107
Pada btnMultiple tuliskan sintaks berikut
private void btnMultipleActionPerformed(java.awt.event.ActionEvent evt) {
String firstNumber = txtFirstNumber.getText();
String secondNumber = txtSecondNumber.getText();
if (firstNumber.equals("") || secondNumber.equals("")) {
JOptionPane.showMessageDialog(null,
errorMessage,
errorTitle,
JOptionPane.ERROR_MESSAGE);
}else{
double first = Double.parseDouble(firstNumber);
double second = Double.parseDouble(secondNumber);
double result = Calculator.multiple(first, second); // Penjumlahan
txtResult.setText(String.valueOf(result));
}
}
Running awal
108
Hasil perkalian
109
BAB 14
Mengakses Port pada Hardware Komputer
14.2. Indikator
110
B. Mencari Semua COMM Port yang Ada
Untuk mencari semua comm port, baik yang aktif ataupun yang tidak menggunakan
library rxtx, kita bisa menggunakan method di bawah ini:
C. Komunikasi Serial
Berikut adalah contoh kode untuk melakukan komunikasi seriap pada comm port
menggunakan library rxtx.
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
serialPort.setSerialPortParams(57600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PA
RITY_NONE);
111
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
}
else
{
System.out.println("Error: Only serial ports are handled by this example.");
}
}
}
/** */
public static class SerialReader implements Runnable
{
InputStream in;
/** */
public static class SerialWriter implements Runnable
{
OutputStream out;
112
catch ( Exception e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
113
Daftar Pustaka
Mohan, P., Fundamentals of Object Oriented Programming in Java, he University of the West
Indie
Koentjoro, E.Y., 2016, Modul Praktikum Pemrograman Berorientasi Objek, STIKOM
Surabaya
Khannedy, E. K., 2011. Belajar Java Dasar. Bandung. Available online:
http://vokasi.uho.ac.id/statistika/assets/download/151227152252Belajar-Java-
Dasar.pdf.
Rahardjo, B., Heryanto, I., Haryono, I. 2012. Mudah Belajar Java: Revisi Kedua. Bandung:
Penerbit Informatika.
Nama Lengkap
RESPONSI
NIM
9 786239 262655