Modul PBO
Modul PBO
TUGAS PENDAHULUAN
Buatlah algoritma dari program yang ada dalam kegiatan praktikum ini !
1. TUJUAN
2. DASAR TEORI
Java adalah bahasa pemrograman seperti halnya dengan bahasa pemrograman lain seperti
Pascal, Basic, dan C. Java juga dapat digunakan untuk membuat aplikasi web yang saat ini
terus berkembang. Java dikembangkan oleh Sun Microsystem pada Agustus 1991 dengan
nama semula Oak dan merupakan hasil perpaduan dari berbagai bahasa pemrograman
seperti C, C++, Objective-C, Smalltalk dan CLISP. Kelebihan dari Java adalah program java
dapat berjalan pada berbagai platform (multi platform).
Kompilasi code Java menggunakan JVM (Java Virtual Machine) yang nantinya JVM
tersebut akan merubah intermediate code menjadi bytecode (machine code). Pada Java
2, interpreter Java terkemas dalam sebuah paket yang disebut JRE (Java Runtime
Environment).
Java Technology
Java salah satu bahasa pemrograman baru menjanjikan banyak kemudahan bagi
programer junior maupun senior (selama menggunakan IDE handal bayaknya NetBeans).
Java adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun
Microsystems. Bahasa ini dikembangkan dengan model yang mirip dengan bahasa C++
dan Smalltalk, namun dirancang agar lebih mudah dipakai dan platform independent, aitu
dapat dijalankan di berbagai jenis sistem operasi dan arsitektur komputer. Bahasa ini
juga dirancang untuk pemrograman di Internet sehingga dirancang agar aman dan portabel.
Java telah digunakan dalam banyak hal dan telah membuktikan keberadaannya pada
abad ke 21. Saat ini, Java digunakan pada bermacam jenis aplikasi seperti aplikasi
mobile phone (J2ME), aplikasi embedded, aplikasi keuangan, desktop, simulasi pesawat,
Keyword
Berikut adalah kata-kata kunci yang ada pada Java. Kata kunci tidak dapat digunakan
sebagai pengenal (identifier) ataupun sebagai nilai variable dalam pemrograman
Java.
Comment
Comment merupakan bagian dari source code yang tidak dijalankan tetapi hanya
digunakan untuk dokumentasi. Sama seperti pada bahasa C, comment pada bahasa Java
dimulai dengan “//” diakhiri dengan enter atau dimulai dengan “/*” dan diakhiri oleh “*/”.
Variable
Variabel digunakan untuk menampung nilaipada pemrograman. Kita tidak dapat
Menyimpan tipe bernilai angka ke variabel bertipe nilai huruf ataupun sebaliknya, sehingga
tipe dan nilai variable harus sesuai. Variabel merupakan container yang digunakan
untuk menyimpan suatu nilai pada sebuah program dengan tipe tertentu. Untuk
mendefinisikan variabel, sama seperti pada bahasa pemrograman keluarga C lainnya, kita
dapat menuliskan tipe data dan identifier untuk menamai variabel tersebut.
Data Type
Pada Java memiliki 8 jenis tipe data primitif, antara lain
- Tipe bilangan bulat : long, int. short, byte
- Tipe bilangan riil : float, double
- Tipe data karakter : char
- Tipe data Boolean : boolean
Operator
a. Operator Aritmatika
b. Operator Logika
c. Operator Relasi
▪ IF-ELSE
▪ SWITCH-CASE
Perulangan
▪ FOR
fo r ( /* 1 */ ; / * 2 */ ; / * 3 */ )
{
/ * 4 */
if( / * 5 */ ) c o n t i n u
e ; if( / * 6 */ ) b r ea k;
/ * 7 */
}
/ * 8 */
▪ WHILE
▪ DO-WHILE
Array
▪ Array 1 Dimensi
i n t[] a n g k a = n e w i n t[ 5] ;
i n t[] a n g k a = { 5 , 3 , 2 3 , 9 9, 2 };
▪ Array 2 Dimensi
t i p e D a t a [] [] n a m a _ v a r ia b e l = n e w t i p e D a t a [ j u m l a h _ b a ris] [ ju
m l a h _ko l o m] ;
▪ Array Dinamis
Untuk dinamis kita dapat menggunakan class Vector atau class StringTokenizer
yang terdapat pada class Java.util. Penggunaan keduanya dapat kita lihat pada link h tt p : / / j
a v a . s u n . co m / j 2 s e / 1 . 4 . 2 / d o cs / a p i / j a va / u t i l / V e c t o r . h t m l , h tt p : / /
j a v a . s u n . co m / j a v a s e / 7 / d o c s / a p i / j a v a / u t i l / S tr i n g T o k e n i z e r. h tml
Contoh potongan program, mengisi variabel StringTokenizer dari string dan
menampilkan isinya.
Untuk lebih memahami penggunaan array 2 dimensi, berikut kita akan mencoba
membuat program yang menghasilkan nilai acak dari 0-9 dan ditampung pada array
dua dimensi, kemudian ditampilkan pada layar.
3. KEGIATAN PRAKTIKUM
➢ Input dari Keyboard
Pada setiap aplikasi rata-rata telah menggunakan inputan dari keyboard, misalnya
jika kita ingin membuat menu pilihan di mana user dapat memilih pada menu mana dia
akan masuk. Oleh karena itu, kita harus menggunakan sebuah class yang khusus bertugas
menangani pembacaan inputan keyboard.
Berikut adalah contoh penulisan program pada java secara lengkap dan cara
menangkap inputan keyboard:
==Menu Program==
1 . A p l i ka s i K o t a k
2 . A p l i ka s i S e g i t i g a
3. E x i t
Masukkan pilihan:1
= = A p li k a s I K o t a k = =
Ma su k k a n a n g k a : 4
* * * * ** * * * ** * * * ** * * * *
=========================
Kalkulator Sederhana
================
Menu:
1. Penambahan (+)
2. Pengurangan (-)
3. Perkalian (*)
4. Pembagian (/)
5. Modulus (%)
6. Exit
Masukkan Bilangan1 : 5
Masukkan Bilangan2 : 4
Hasil Penjumlahan : 9
TUGAS PENDAHULUAN
1. TUJUAN
Praktikan mampu mengetahui dan menggunakan fitur-fitur object-oriented dasar bahasa
Java.
2. DASAR TEORI
Object
Elemen dasar dari konsep OOP adalah object. Object merupakan abstraksi
sesuatu dalam dunia nyata, misalnya: manusia, binatang, aktivitas, bussiness system atau
workflow. Sebuah object dalam OOP terdiri dari 2 elemen penyusun:
a) Attribut (state, data member), merupakan ciri-ciri yang melekat pada suatu object.
Modul Pemrograman Berorientasi Objek Hal 10
b) Method (behaviour, member function) merupakan fungsi-fungsi yang digunakan untuk
memanipulasi nilai-nilai pada attribut atau untuk melakukan hal-hal yang dapat
dilakukan pada suatu object.
• Merk
• Warna
• Ukuran sepeda
• Nomer kerangka
• Jumlah perseneling
Method:
• Nyalakan mesin
• Berjalan
• Belok
• Mengerem
• Menambah kecepatan
Object mahasiswa:
Attribut:
• NPM
• Nama mahasiswa
• Fakultas
• Jurusan
Method:
• Terima materi
• Melihat nilai
• serah tugas
Class
Setelah kita memahami tentang object yang masih memiliki bentuk yang abstrak, maka
kita akan melanjutkan ke pembahasan class. Dikatakan abstrak karena masih belum spesifik
untuk siapakah object tersebut ditujukan, misalnya object sepeda motor ditujukan untuk jenis
sepeda motor apa (honda beat, Yamaha yupiter, kawasaki ninja). Ketiga jenis motor tersebut
akan menjadi class untuk object sepeda motor.
Contoh berikutnya misalnya object mahasiswa yang ditujukan untuk seorang mahasiswa.
Sebagai contoh mahasiswa dengan NPM 08120100015, maka dapat dibentuk class mahasiswa
dengan NPM 08120100015 yang merupakan spesifikasi atau implementasi dari object
mahasiswa.
Sebuah object yang sudah dibentuk atau digambarkan perlu didefinisikan menjadi sebuah
class. Class merupakan cetak biru (blue print) dari object. Berikut contoh sintaks dari class
mahasiswa dan class Main-nya. Class main digunakan untuk melakukan instanisasi class
Mahasiswa, sehingga attribut dan method pada class Mahasiswa dapat digunakan.
adalah sintaks untuk melakukan instanisasi class sebelum dapat digunakan (diisi dan
ditampilkan nilai- nilainya).
Method
Sifat constructor:
Overloading
Overloading adalah pembuatan metode-metode dengan nama yang sama tetapi jumlah
parameter dari metode-metode tersebut berbeda.
3. KEGIATAN PRAKTIKUM
✓ Pembuatan Kelas (Class)
Kelas pada java didefinisikan dengan menggunakan kata kunci class.
Contoh sederhana penciptaan kelas:
✓ Konstruktor (Constructor)
Kita sudah mengetahui bahwa kelas adalah alat untuk menciptakan objek. Sekarang yang
menjadi pertanyaan adalah bagaimana cara menciptakan objek menggunakan sebuah kelas.
a. Contoh :
2. Contoh :
✓ Overloading
1. Buatlah program untuk menghitung luas, keliling dari persegi panjang dengan
memanfaatkan konsep OOP!
2. Tanyakan pada asisten praktikum!
Tugas Pendahuluan
1. TUJUAN
Mahasiswa mampu membuat Method Inheritance dengan hirarki penciptaan
kelas untuk pembentukan kelas super dan sub kelas serta Overiding Method.
2. DASAR TEORI
❖ Inheritance
Inheritance adalah kemampuan suatu objek atau kelas untuk mewariskan sifat-
sifat yang terdapat didalamnya ke kelas turunannya. Inheritance merupakan suatu
mekanisme yang memungkinkan seorang pemrogram menciptakan kelas baru berdasarkan
kelas yang sudah tersedia sehingga tidak perlu menuliskan kode dari nol. Kelas
dasar/kelas induk mewarisi semua metode dan variable instant, namun kelas turunan dapat
menambahkan metode baru atau variable instant baru tersendiri.
Class yang mewariskan disebut dengan superclass/parent class/baseclass,
sedangkan yang mewarisi disebut subclass/child class/derived class. Keuntungan
dari inheritance adalah mengurangi penggunaan code yang berulang (reuse), karena sub
class dapat menggunakan attribute dan method yang ada pada superclass-nya.
a. Cara Pewarisan Kelas.
Untuk menerapkan inheritance pada java menggunakan statement extends. Kelas
turunan secara prinsip dapat dibuat dengan menggunakan bentuk :
Keyword this digunakan untuk membedakan antara variable pada level class dengan
variabel pada method. Keyword this menandakan bahwa varibel tersebut merupakan variabel
pada level class. Untuk memperjelas, kita lihat contoh berikut.
3. KEGIATAN PRAKTIKUM
4. TUGAS
Buatlah sebuah program yang menerapkan constructor dan inheritance yang kita pelajari pada
modul ini, dengan ketentuan sebagai berikut:
✓ super class dengan nama BangunRuang yang memiliki attribute panjang1, panjang2,
panjang3.
✓ sub class Kubus yang mempunyai attribut sisi, dan method Luas Permukaan dan Volume.
✓ Rumus luas permukaan kubus = 6 x sisi x sisi
Contoh keluaran
Tugas Pendahuluan
1. TUJUAN
Mahasiswa mampu memahami konsep encapsulation dan aplikasinya dalam sebuah program
java pada pemrograman bebrbasis objek
2. DASAR TEORI
Encapsulation
Inti dari konsep encapsulation adalah menyembunyikan kompleksitas suatu class dari
class yang lain yang mengaksesnya. Dengan menggunakan public, protected, private dan
package dapat digunakan untuk memilih data mana saja yang ditampilkan dan disembunyikan.
Encapsulation (Enkapsulasi) adalah suatu cara untuk menyembunyikan implementasi
detail dari suatu class. Enkapsulasi mempunyai dua hal mendasar, yaitu:
▪ Information hiding, menyediakan suatu perantara (method) untuk pengaksesan
data
▪ Enkapsulasi dapat dianggap sebagai bungkusan. Ekapsulasi inilah yang
diimplemtasikan dalam sebuah kelas dimana dalam sebuah kelas terdiri dari atribut
dan metode yang dibungkus dalam sebuah kelas. Ekapsulasi dalam sebuah kelas
bertujuan untuk melindungi atribut dan metode yang ada didalam kelas gar tidak
sembarangan diakses oleh kelas lain.
import java.io.*;
class Manusia {
private String nama, jns_kel;
private double tinggi, berat;
public Manusia(String nama, String jns_kel, double tinggi, double berat) {
this.nama=nama;
this.jns_kel=jns_kel;
this.tinggi=tinggi;
this.berat=berat;
}
} class Mahasiswa extends Manusia { private
String npm, asalSMU, fakultas, jurusan;
private int nTugas, nUjian;
public Mahasiswa(String nama, String jns_kel, double tinggi, double berat,
String npm, String asalSMU, String
fakultas, String jurusan, int nTugas,
int nUjian) { super(nama, jns_kel,
tinggi, berat); }
}
4. TUGAS
Buatlah program untuk menghitung gaji bersih dari seorang pegawai, pajak ppn sebesar 10%
dari gaji kotor
Tugas Pendahuluan
1. TUJUAN
Mampu membuat method Polimorfisme untuk implementasi listing code yang berbeda
sesuai dengan behavior masing- masing kelas.
2. DASAR TEORI
Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda melalui satu cara
yang sama. Apabila mempunyai objek yang bertipe superkelas, variable objek ini bisa diisi
dengan objek superkelas ataupun objek subkelas tanpa perlu melakukan perubahan tipe.
Polymorphism berarti sebuah object dapat memiliki berbagai bentuk, yaitu dengan memiliki
nama yang sama, tetapi behavior yang berbeda. Sebuah object dapat memiliki berbagai bentuk
baik dari class itu sendiri ataupun dari superclass-nya. Ada 2 macam bentuk
polymorphism, yaitu:
a. Overloading: penggunaan satu nama untuk beberapa method yang berbeda
dalam suatu class. Nama method yang sama dibedakan dari jumlah parameter
dan
tipe data parameternya.
Pada polymorphism, dikenal juga dynamic binding atau ikatan dinamis yang
umumnya digunakan pada variabel bertipe class. Jika kita mempunyai variabel bertipe
superclass, variabel ini dapat diisi dengan object superclass ataupun subclass-nya tanpa
melakukan perubahan tipe. Untuk lebih jelas mengenai dynamic binding kita akan melihat
contoh berikut:
Pada contoh class Manusia merupakan superclass, sedangkan class Mahasiswa dan
class Karyawan merupakan subclass dari class Manusia. Ketiga class tersebut memiliki
method setNama() dan getNama(). Kesamaan nama dan tipe data method pada subclass
yang mengacu superclass dinamakan overriding method. Kemudian variabel object
Manusia (mns) menunjuk ke object yang dirujuk oleh Mahasiswa (mhs), pada baris mns
= mhs; variabel object Manusia (mns) ke object yang dirujuk oleh object Karyawan (kar),
pada baris mns = kar;
3. KEGIATAN PRAKTIKUM
Dari kedua class diatas, analisa dan desainlah superclass yang tepat untuk kasus tersebut.
Setelah itu buatlah class utama/main class yaitu class PegawaiBitingBersatu (yang
menggunakan classclass diatas) yang memiliki menu utama sebagai berikut:
Tugas Pendahuluan
1. Apa fungsi abstract pada pemrograman java?
2. Apakah superclass dan subclass?
1. TUJUAN
2. DASAR TEORI
Abstract class digunakan sebagai model atau acuan (superclass) bagi penurunan untuk
sub-sub class-nya. Pada umumnya abstract class hanya berisi variable-variabel umum dan abstract
method tanpa body, kemudian baru pada class turunannya mendefinisikan secara detil body
methodnya. Untuk membuat abstract class dan abstract method menggunakan keyword abstract.
Berikut contoh untuk mendefinisikan abstract class, abstract method, non abstract method.
Abstraksi adalah proses pengabstrakan atau penyembunyian detail program yang sangat
rumit sehingga kita tidak perlu untuk mempermasalahkan pembuatannya. Kita hanya perlu
obyek tersebut dapat kita gunakan sesuai fungsinya. Dalam java suatu metode ditentukan dari
dalam kelas tetapi tidak disertai definisinya, metode ini dikenal dengan metode abstrak, sedangkan
kelasnya disebut kelas abstrak. Definisi kelas diletakkan pada masing-masing kelas turunannya.
Kelas abstrak biasanya dibuat apabila pada subkelas-subkelas memerlukan operasi yang
Sebagai catatan, class atau method yang diberi attribut atau keyword final tidak boleh berupa
abstract class atau abstract method. Karena abstract class harus diturunkan, sedangkan abstract
method harus di-override pada subclass
Interface
Interface berisi sekumpulan konstanta dan atau deklarasi method tanpa menyertakan body
methodnya yang dapat digunakan pada sejumlah class. Sekilas Interface mirip dengan Abstract
Class karena sama-sama menentukan bentuk method untuk subclass-nya. Untuk mengetahui
perbedaan keduanya, kita amati table perbedaan Interface dengan Abstract Class berikut:
Abstract Class
Interface
▪ Menggunakan implements .
Package
Sejumlah class yang terkait pada Java biasa dikelompokkan dalam sebuah unit yang
disebut package (paket). Pada NetBeans kita dapat mendeklarasikan JavaPackage dalam 1
project, atau dengan kata lain 1 project dapat memiliki 2 atau lebih package. Untuk membuat
atau mendeklarasikan package dengan menggunakan keyword package. Berikut contoh
membuat class Mahasiswa08 dan class Mahasiswa09 dalam package modul2c.
3. KEGIATAN PRAKTIKUM
b. Program abstract
User dapat memilih pilihan dengan huruf besar maupun huruf kecil. Jika LOGIN
dipilih, maka user diminta menginputkan nama user dan password. Jika salah, maka
tampilkan pesan bahwa user salah menginputkan username atau password atau
keduanya dan program kembali ke menu utama. Jika benar, maka tampilkan menu
pilihan sebagai berikut:
2. Dengan soal nomor 1, gunakan konsep interface, yaitu interface Login. Untuk
melakukan testing program, buatlah sebuah class main dengan menggunakan konsep
package.
3. Buatlah sebuah outer class Email yang memiliki inner class level 1 dengan nama
class BodyContent dan class Recipient. Variabel dan method pada tiap class dapat
kalian tentukan sendiri. Setelah itu buatlah class main yang menginstancekan outer
class dan inner class tersebut, buatlah contoh implementasi sesuai kreatif kalian.
1. TUJUAN
Mampu menerapkan dan membuat program dengan interface secara graphis (GUI)
memanfaatkan method AWT dan SWING dalam pembuatan komponen.
2. DASAR TEORI
Pada bab-bab sebelumnya interaksi antara user dengan program hanya berbasis console
editor dengan tampilan dos yang membosankan, maka agar interaksi antara user dengan
program tidak membosankan diperlukanlah sebuah interface yang menghubungkan antara user
dengan program dengan tampilan grafis, interface ini dinamakan dengan GUI (Graphical User
Interface).
Dalam pemrograman GUI terdapat beberapa bagian yang harus dilakukan yaitu:
a. Membuat windows utama
b. Menentukan komponen-komponen pendukung program
c. Menentukan tata letak layout agar nantinya semua komponen- komponen yang
sudah dipersiapkan bisa diaatur sedemikian rupa
d. Event Handling dari sebuah aktivitas, seperti penekanan button, check box dan
lain-lain
Java menyediakan 2 kelas untuk bekerja dengan GUI, yaitu AWT dan Swing
1. AWT(abstract windows tollkit): sebuah kelas yang terdapat dalam package java.awt,
dimana berisi komponen-komponen GUI yang bersifat platform oriented atau tegantung
pada sistem operasi
Kedua package diatas memiliki event handling yang sama sehingga kita bisa mempelajari
eventhandling keduanya secara bersamaan, sebelum melakukan eksplorasi lebih lanjut
dengan GUI java, perlu dipahami beberapa elemen berkenaan dengan pemrograman GUI.
Container: adalah sebuah wadah untuk meletakkan komponen- komponen GUI, contohnya
seperti canvas seorang pelukis, dalam hal ini lukisan yang ditempelkan pada container adalah
komponen- komponen GUI seperti Button, textedit, radiobutton, dan lainlain, container GUI
pada java bisa dibuat berlapis , artinya sebuah GUI dapat dibuat container dan
diletakkan pada container lain , container level tinggi disebut dengan toplevel-container
yang merupakan windows utama dari sebuah tampilan GUI. Untuk membuat windows
utama kita bisa memanfaatkan kelas Jframe, Jdialog atau Japplet yang merupakan kelas-kelas top-
level-container, setiap kita membuat program GUI minimal kita harus memiliki atau membuat
1container.
▪ Panel : Container paling ideal dan sering dogunakan untuk memuat kompenen dan
container lainnya dalam suatu hierarki
▪ Applet : Panel khusus yang digunakan untuk membuat program yang dijalankan pada
browser internet
▪ Windows : Kelas pada top level windows yang tidak memilioki title border
▪ Frame : Kelas pada top level windows yang memiliki title bar, menu bar, border,selain itu
juga frame dapat diubah-ubah ukurannya (resize) dan dapat dipindahkan
▪ Dialog : Kelas pada top level windows yang memiliki satu title bar dan suatu border
▪ FRAME, program berikut akan memperlihatkan contoh pembuatan frame/tampilan
windows
Dalam merancang sebuah program berbasis GUI kita membutuhkan suatu tools sebagai
pendukung untuk tiap vent yang kita inginkan dalam java semua tools untuk pemrograman
GUI terangkum dalam kelas Component yang natinya akan diwariskan pada tiap program
yang mengaksesnya
Kelas Component:
Kelas Component merupakan kelas abstrak dari semua komponen yang digunakan
untuk merancang GUI, kelas ini merupakan kelas super dari semua komponen GUI memiliki
beberapa subkelas yang merupakan kelas konkrit dari komponen-komponen konkrit GUI, selain
itu juga kelas ini memiliki basic support untuk event handling , pengubahan ukuran
komponen, pengaturan ont, warna dan lain-lain.
1. Canvas
Modul Pemrograman Berorientasi Objek Hal 46
Komponen yang digunakan untuk menggambar dan merancang GUI.
2. Checkbox
Komponen yang menyediakan suatu set pilihan yang dapat di toggle on/off. Checkbox
dapat dikelompokkan menjadi radio button.
3. Choice
Komponen yang memberikan menu yang dapat muncul secara otomatis (pop- up).
4. Label
Komponen yang digunakan untuk menampilkan yang hanya dapat dibaca saja.
5. List
Komponen yang berupa list pilihan dapat digulung(scroll).
6. Scrollbar
Komponen yang dapat digeser secara vertical maupun horizontal untuk menunjukkan
posisi atau suatu nilai.
7. TextField
Komponen yang digunakan untuk menulis text yang berukuran kecil.
8. TextArea
Sama seperti TextField, namun memiliki kapasitas yang lebih besar. Sehingga misalnya
kita ingin membuat komponen button kita harus membuat objek dulu dari Component
lalu memanggil kelas JButton.
Berikut ini kita akan membuat salah satu komponen dari GUI yaitu button :
Message BOX, disebut juga dialog, berikut kita akan membuat sebuah message box sederha
Layout Management
Dalam merancang sebuah program kita tidak hanya membutuhkan komponenkomponen
apa saja yang harus digunakan tetapi kita juga harus menbgatur komponenkomponen
tersebuat dalam lcaontainer, pengaturan komponen-komponen inilah disebuat dengan
Layout Management Dalam layout management kelas-kelas komponen didalamnya
diperlakukan sebagai skenario tata letak (layout), bukan seperti komponenkomponen
pada GUI seperti JButton,Jlist,Jframe dll, jadi hasil dari Layout management ini tidak akan berupa
tampilan grafis tapi hanya pengaturan letak komponen-komponen GUI pada top-levelcontainer.
Java menyediakan 5 kelas dalam perancangan GUI. Kelas–kelas tersebuat antara lain sebagai
berikut :
a. FlowLayout :Penentuan tata letak komponen didasarkan pada baris ,yaitu mulai dari kiri ke
kanan dan baris atas ke baris bawah
b. GridLayout :Penentuan letak komponen didasarkan pada persegi panjang Grid
c. BorderLayout :Penantuan tata letak komponen didasarkan pada lima posisi yaitu
east,west,north,south dan center
d. CardLayout : Penentuan tata letak komponen diperlakukan mirip dengan tumpukan
kartu dimana akan bergantian , yang visible hanyalah komponen yang terletak di bagian
atas
e. GridBagLayout : Penentuan tata letak komponen yang menggunakan prinsip yang sama
pada GridLayout, namun komponen dapat menempati multiple cell
Hasilnya:
Event Handling
Event adalah sebuah proses atau aksi yang dilakukan oleh user saat user menggunakan
perangkat I/O seperti mouse, keyboard, setiap objek dari komponen GUI dapat merespon event,
dan itu dapat dilakukan dengan cara mengimplementasi suatu interface tertentu yang
sesuai, kemudian diterapkan sebagai event listener pada event source.
Berikut ini kita akan menggabungkan 3 contoh program diatas, event nya adalah
penekanan button lalu akan ditampilkan sebuah messagebox
btnText.addActionListener(handler);
{
System.exit( 0 );
}
} );
}
// Inner class untuk "event handling" pada button private
class ButtonHandler implements ActionListener { public
void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog( null,"hai labprograming","hasil
event",1);
}}}
Hasilnya:
Modul Pemrograman Berorientasi Objek Hal 51
setelah button diatas ditekan maka event yang akan dihasilkan :
3. KEGIATAN PRAKTIKUM
a. Praktekkan listing program diatas (pada contoh-contoh program didasar teori tersebut)
b. Contoh Program sederhana CALCULATOR
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
container1.setLayout(new BorderLayout(150,10));
container1.add(p1);
Container container = getContentPane(); container.setLayout(new
FlowLayout(FlowLayout.LEFT,40,10));
container.add(p2); container.add(p3);
container.add(p4); container.add(p5);
}
public void actionPerformed(ActionEvent e)
{ if (e.getSource()==
btnkali)
} else
if (e.getSource()== btntambah)
{
double bilangan1=(Double.parseDouble(jTFInput1.getText().trim())); double
bilangan2=(Double.parseDouble(jTFInput2.getText().trim())); double
hasil = bilangan1 + bilangan2;
jTFHasil.setText(String.valueOf(hasil));
} else if (e.getSource()==
btnkurang)
{ double
bilangan1=(Double.parseDouble(jTFInput1.getText().trim())); double
bilangan2=(Double.parseDouble(jTFInput2.getText().trim()));
} else { double hasil = bilangan1 - bilangan2;
jTFHasil.setText(String.valueOf(hasil)); double
bilangan1=(Double.parseDouble(jTFInput1.getText().trim())); double
bilangan2=(Double.parseDouble(jTFInput2.getText().trim()));
}
} } double hasil = bilangan1 / bilangan2; jTFHasil.setText(String.valueOf(hasil));
Hasil
4. TUGAS
Kerjakan kembali tugas-tugas pada pertemuan sebelumnya dengan menggunakan konsep GUI.
1. TUJUAN :
(Prak8_2.java).
else{
System.out.println(“Mahasiwa tersebut lulus”);}
2.3 Program dengan pernyataan If..Else.. bertingkat
Program di bawah adalah program untuk mengkonversi nilai angka ke nilai huruf, yang dilakukan
dengan menggunakan pernyatan if..else.. bertingkat. Dengan menggunakan paket dan projek
yang sama, tambahkan sebuah method dengan nama prosesIfElse pada kelas
ProsesPercabanganIf dengan kode sebagai berikut:(Prak8_3.java)
Dan ganti pemanggilan method prosesIf pada kelas Mainclass menjadi prosesIfElse, jalankan
program! ( p.prosesIf(); p.prosesIfElse(); )
Tambahkan koding program berikut pada kelas MainClass yang telah dibuat:
Coba tambahkan pernyataan di bawah, yang diletakkan setelah pernyataan case 3 pada kelas
ProsesPercabanganSwitchCase, kemudian inputkan bilangan lebih besar dari 4 pada kelas
MainClass. (Prak8_5.java)
3. TUGAS
Soal 8.1 (Soal8_1.java)
2
IMT = b / t dengan b : berat badan (kg) dan t : tinggi badan (m)
Kriteria penentuan berat berdasarkan IMT adalah sebagai berikut :
1. Tujuan :
Program di bawah ini akan menampilkan tulisan “Hello World!!” sebanyak 5 kali. Tulis dan
jalankan program tersebut (Prak9_1.java).
01 public class Prak301 {
02 public static void main (String[] args) {
03 for(int i=1; i<5; i++)
04 System.out.println(“Hello World!!”);
05 }
06 }
Program di bawah ini akan menampilkan bilangan genap mulai dari 2 sampai bilangan yang
diinputkan oleh pengguna. Tulislah dan jalankan program berikut dengan membuat 3 class dengan
nama masing – masing: Model, PerulanganFor,MainClass. (Prak9_2.java)
2. PerulanganFor.java
3. Main Class.java
2. MainClass.java
Variabel counter adalah suatu variabel yang menyimpan hasil operasi secara kontinyu
(mis : hasil = hasil + 5 atau ditulis hasil += 5). Berikut adalah program untuk menjumlahkan
bilangan sampai dengan bilangan yang diinputkan oleh pengguna.Tambahkan dan jalankan code
program di bawah ini: (Prak9_4.java).
1. PerulanganFor.java
3. TUGAS
Buat program untuk mengkonversi bilangan bulat ke bilangan romawi dengan input
bilangan bulat dengan range 1- 5000.
Buat program untuk mencetak bilangan prima mulai dari bilangan prima pertama (2) sampai
dengan bilangan prima terakhir, yang banyaknya bilangan primanya ditentukan oleh pengguna.
1. TUJUAN :
2. KEGIATAN PRAKTIKUM
2.1 Program dengan Array 1 dimensi
Program berikut adalah program untuk mencari nilai rata-rata sekelompok bilangan, dimana
bilangan yang akan dirata-rata dimasukkan terlebih dahulu ke dalam array. (Prak10_1.java).
1. TUJUAN :
2. DASAR TEORI
Rekursi merupakan algoritma untuk memecahkan masalah menggunakan suatu fungsi yang
memanggil dirinya sendiri. Sebenarnya permasalahan yang dapat diselesaikan menggunakan rekursi
dapat diselesaikan tanpa rekursi namun hal tersebut sulit untuk dilakukan.
Beberapa maslah klasik yang bisa di selesaikan menggunakan rekursi adalah : a)
Factorial
Bila anda pernah mempelajari teori kemungkinan (probabilitas) tentu tidak asing dengan konsep
factorial. System perhitungan factorial memiliki ketentuan sebagai berikut:
0! = 1
Berdasarkan ketentuan di atas, bisa anda tuliskan beberapa konsekuensi yang menyertainya. Jika
nilai factorial suatu bilangan sama dengan hasil perkalian bilangan tersebut dengan bilanganbilangan
sebelumnya, selama bernilai positif, maka :
(n-2)! = (n-2) x (n-3) x (n-4) …
Dengan memperhatikan pola di atas, cara yang paling efisien untuk mengalikan bilangan-bilangan
factorial adalah dengan membuat fungsi perkalian yang dapat memanggil dirinya sendiri. Proses
tersebut harus dikerjakan dengan indek yang menurun dan akan berhenti setelah tercapai n = k.
Factorial(int n){
If (n==0)
return 1
else
return n*factorial(n-1);
Factorial
}
Bilangan-bilangan yang menyusun deret Fibonacci disebut juga sebagai bilangan Fibonacci.
Selanjutnya akan dibuat method sedemikian rupa, sehingga bisa mengacu kepada suatu bilangan
Fibonacci. Proses ini dilakukan dengan memanggil nama method tersebut dan menyebutkan
indeksnya, contoh fib(0), fib(3), fib(100), dan sebagainya.
Berdasarkan pola Fibonacci,
Fib(0) = 0;
Fib(1) = 1;
Sekali lagi, diperlukan pola rekursi untuk memecahkan masalah tersebut. Pola Fib(n) = fib(n1)
+ fib(n-2); n >= 2 bermakna untuk mencari bilangan Fibonacci ke-n. Terlebih dahulu harus
mengerjakan proses perhitungan untuk dua bilangan sebelum indeks ke n (dengan indeks menurun).
Proses akan terus dikerjakan dan berakhir bila n = 2 atau menghasilkan fib(0).
Fib(1) = 1;
Fib(0) = 0;
c) Menara Hanoi
Menara Hanoi adalah istilah yang di gunakan untuk menggambarkan suatu tumpukan balok atau
cakram yang tersusun seperti sebuah pyramid. Sebagai ilustrasi, tinjaulah menara Hanoi yang
tersusun dari 3 balok. Pada bagian dasarnya, terdapat balok dengan penampang terluas, dan di bagian
tengahnya, balok dengan luas penampang di antara keduanya.
A B C
Aturan pemindahan menara Hanoi: memindahkan seluruh balok dari posisi A ke B. pada setiap
langkah hanya boleh satu blok dipindahkan. Tidak boleh balok kecil menjadi alas bagi balok besar.
Posisi C boleh dijadikan transit sementara. Posisi A dan B bisa juga di jadikan transit sementara ,
apabila saat proses pemindahan masih berlangsung, semua blok terkumpul pada dua posisi lainnya.
3. KEGIATAN PRAKTKUM
3.1. Rekursif pada Faktorial
Berikut ini adalah contoh program rekursif untuk menghitung nilai faktorial suatu
bilangan. Tulis dan jalankan program berikut. (Prak11_1.java). Setelah berhasil menjalankan
progarm yang telah dibuat, lakukan modifikasi dengan menggunakan konsep OPP !
Buat program Sistem Informasi Perhotelan dengan menggunakan Java OOP, dimana data yang
disimpan adalah :
1. Data kamar, yang berisi data jumlah kamar yang dimiliki oleh hotel tersebut, termasuk
status dari kamar tersebut, apakah terisi, dibooking atau kosong. Kamar yang ada terdiri
dari tiga jenis kamar, yaitu single (harga sewanya Rp. 175.000,-), double (harga
sewanya Rp. 225.000,-) dan suite (harga sewanya Rp. 300.000,-).
2. Data penyewa, yang berisi data tamu yang menginap di hotel tersebut, yang minimal
menyimpan data no KTP/SIM, nama, alamat, dan no telepon.
3. Data transaksi, yang berisi proses transaksi antara penyewa dan kamar yang disewa
Adapun fasilitas/proses yang dimiliki oleh program ini adalah sebagai berikut :
1. Dapat menampilkan data kamar beserta statusnya. Termasuk memberikan summary
berapa jumlah kamar yang terisi, yang kosong, dan yang dibooking
2. Dapat menampilkan data penyewa termasuk kamar yang disewa. Juga dapat
memberikan summary tentang penyewa yang sering menginap di hotel tersebut
3. Dapat mengetahui total transaksi yang dilakukan pada suatu waktu tertentu (perbulan atau
pertahun tertentu) 4. Tambahan fasilitas lain akan memberikan nilai tambah.
Untuk proses pemilihan proses digunakan sistem menu, yang formatnya ditentukan sendiri
oleh pembuat program.
REFERENSI
▪ Java Software Solutions 6th Edition Lewis, John & Loftus, William. 2009. Pearson
International
▪ Dasar Pemrograman Java 2 Kadir, Abdul. 2004. Yogyakarta: Penerbit Andi Offset
▪ Tuntunan Pemrograman Java Jilid 3 Purnama, Rangsang. 2005. Jakarta: Prestasi Pustaka
▪ Absolute Java 3rd Editon Savitch, Walter. 2008. Pearson International
▪ Belajar Pemograman dengan Bahasa C++ dan Java, M.Shalahuddin dan Rosa A.S, .2007.
Bandung:Informatika