Pemrograman Berorientasi Objek Java
Pemrograman Berorientasi Objek Java
Pemrograman adalah
Objek adalah kesatuan entitas yang memiliki sifat dan tingkah laku. Dalam
kehidupan sehari-hari, objek adalah benda, baik benda berwujud nyata seperti manusia,
hewan, mobil, komputer, handphone, pena, ataupun benda yang tidak nyata atau konsep,
Konsep yang membagi program menjadi objek-objek yang saling berinteraksi
satu sama lain.. objek adalah benda, baik benda yang berwujud nyata maupun benda
yang tidak nyata (konsep).
Sejarah Java
Sejarah java berawal pada tahun 1991 ketika perusahaan Sun Micro-system
memulai Green Project, proyek penelitian untuk membuat bahasa yang akan digunakan
pada chip-chip embedded untuk device Intelligent Consumer Electronic. Proyek Green
berhasil membuat prototype semacam PDA (Personal Data Assistance) yang dapat
berkomunikasi antara satu dengan yang lain dan diberi nama Star 7. Kemudian muncul
sebuah ide untuk membuat sistem operasi bagi Start 7 berbasis C dan C++, Singkat
pembahasan Bahasa C dan C++ ini dikembangkan lagi menjadi bahasa lebih baik
karakteristiknya yang diberi nama dengan bahasa Oak oleh James Gosling, diinspirasi
ketika melihat pohon diseberang kaca ruang kantornya. Dikarenakan nama Oak sudah
digunakan (menurut kantor merk dagang amerika serikat) maka bahasa Oak diganti
menjadi bahasa java hingga sekarang.
Class
Merupakan kumpulan dari data atau atribut dan method.
Contoh konsep penerapan class didalam kehidupan adalah class manusia, class hewan,
class tumbuhan, class mobil dan yang lainnya.
Method
Merupakan sebuah cara atau suatu aktifitas dari suatu class yang menghasilkan sesuatu.
Contoh class manusia, manusia itu sedang makan. Dari kalimat tersebut dapat kita ambil
kesimpulan bahwa manusia melakukan aktifitas makan yang dapat membuat manusia
tersebut terasa kenyang.
Object
Merupakan bentuk nyata (konkrit) dari class (abstract). Kita ambil contoh sebuah
kalimat manusia itu sedang makan. Kalimat ini belum sempurna maknanya, dikarenakan
masih bersifat abstract atau umum (siapa manusia yang dimaksud dari kalimat tersebut
belum dapat didefinisikan). Apabila kita lakukan perubahan pada kalimat tersebut
menjadi ayahku sedang makan barulah kalimat tersebut mengandung makna dan dapat
didefinisikan dikarenakan class manusia dinstansiasi menjadi object ayah. Sebuah class
tidak dapat beraktifitas atau tidak dapat menghasilkan sesuatu tanpa object, dengan kata
lain object merupakan bentuk sederhana dari class.
Instalasi java
Software yang dibutuhkan untuk membuat sebuah program java, minimal membutuhkan
2 buah software, yakni :
A. Java 2 SDK, Standard Edition (J2SE): Sofware ini biasanya tersedia dalam CD
disetiap buku pemrograman java yang anda beli. Anda dapat juga melakukan
download pada [Link] untuk memperoleh software java 2 SDK
versi terbaru.
B. Text editor: Software ini berfungsi untuk menuliskan kode-kode program yang akan
kita buat. dalam contoh pembuatan program “Hallo Dunia” kita akan menggunakan
Notepad, yaitu text editor paling sederhana yang terdapat pada platform windows.
Anda juga dapat dapati text editor yang lainnya seperti
Eclipse : Software ini merupakan IDE yang dikembangkan oleh IBM dan dalam
penggunaannya memerlukanRAM yang relatife lebih besar. Software ini dapat
didownload di [Link]
NetBeans. : Software ini merupakan IDE menarik yang layak digunakan untuk
mengembangkan berbagai tipe aplikasi; mulai dari aplikasi console, visual, enterprise,
mobile dan lainnya. Software ini dapat didownload di [Link]
Gambar dibawah ini menjelaskan aliran proses kompilasi dan eksekusi sebuah
program Java :
[Link]("Ahlan Wa sahlan!!" +
"Selamat Belajar Java");
}
}
Tipe data yang dipergunakan didalam bahasa pemrograman java, sebagai berikut :
A. Integer, kelompok tipe data yang merepresentasikan bilangan bulat terdiri dari tipe
data byte, short, int dan long.
B. Floating-Point, kelompok tipe data yang merepresentasikan bilangan riil(bilangan
pecahan) terdiri dari tipe data float dan double.
C. Karakter, kelompok tipe data yang merepresentasikan data dalam bentuk karakter,
yaitu tipe data char.
D. Boolean, kelompok tipe data yang merepresentasikan nilai logika (True / False), yaitu
tipe data boolean.
Variable
Mendeklarasikan variable
Output :
Listing program :
Namafile [Link]
class tipedatavar{
public static void main(String[]args){
//deklarasi variable dan tipe data
double nilaiA=45.897;
double nilaiB=34.564;
double nilaiC;
int x;
//rumus perkalian
nilaiC=(nilaiA*nilaiB);
//konversi tipe data
x=(int)nilaiC;
}
}
Operator Relasional, operator yang menyatakan hubungan antara sebuah variable dengan
variable yang lain.
class operator{
public static void main(String[]args){
//deklarasi variable dan tipe data
double nilaiA=45.897;
double nilaiB=34.564;
boolean nilai1=true;
boolean nilai2=false;
double nilaiC,nilaiD,nilaiE,nilaiF,nilaiG;
int v,w,x,y,z;
//operator aritmatika
nilaiC=(nilaiA*nilaiB);
nilaiD=(nilaiA/nilaiB);
nilaiE=(nilaiA+nilaiB);
nilaiF=(nilaiA-nilaiB);
nilaiG=(nilaiA%nilaiB);
If (kondisi){
Statement1;
Statement2;
}
If (kondisi){
//jika kondisi benar
Statement1;
Statement2;
}else{
//jika kondisi salah
Statement1;
Statement2;
}
If (kondisi1){
//jika kondisi benar
Statement1;
Statement2;
}else if(kondisi2){
//jika kondisi1 salah
Statement1;
Statement2;
}else{
//jika kondisi1 dan kondisi2 salah
Statement1;
Statement2;
}
Listing program
class demoifkondisi1{
public static void main(String args[]){
int a=3,b=10;
if(a<5){
[Link]("Contoh Struktur If dua kondisi");
[Link](" ");
[Link](a+" Lebih Kecil dari 5");
}else{
[Link]("Contoh Struktur If dua kondisi");
[Link](" ");
[Link](a+" Lebih besar dari 5");
}
if(b<a){
[Link]("Contoh Struktur If dua kondisi");
Arfhan Prasetyo@2008 [Link](" "); STMIK Nusa Mandiri
[Link](b+" Lebih Kecil dari 5");
Contoh program struktur if multi kondisi
Output
Listing program :
class demoifmultikondisi{
public static void main(String [] args){
char nilaiindeks;
double nilaiabsen,nilaitugas,nilaiuts,nilaiuas,nilaiakhir;
Listing program :
class demoswitchmultikondisi1{
public static void main(String[] args){
int gol;
int gp=0;
int tg;
int tj=0;
//int tj=1000000;
gol=1;
switch(gol)
{case 1:gp=2000000;tj=1500000;break;
case 2:gp=1500000;tj=1000000;break;
case 3:gp=1000000;tj=500000;break;
}
tg=tj+gp;
[Link]("Contoh Struktur Switch Case");
Penggunaan Struktur Perulangan Gaji: " +tg);
[Link]("Total
Statement}for
}
Blok statement;
}
Listing program
class demofor{
public static void main(String [] args){
[Link]("Contoh Struktur For");
[Link](" ");
for (int i=0;i<10;i++){
Struktur while
Bentuk umum dari struktur while :
While (kondisi){
Blok statement;
}
class demowhile {
public static void main(String [] args){
[Link]("Contoh Struktur While");
[Link](" ");
int i=0;
while (i<10){
Struktur DoWhile
Bentuk umum dari struktur dowhile :
Do {
Blok statement;
}
While (kondisi)
Listing program
class demodowhile0 {
Deklarasi array :
Dimensi satu
Tipedata [ ] nama array ;
Atau
Tipedata namaarray[ ];
Dimensi dua
Listing program
class demoarraymulti {
public static void main(String [] args){
[Link]("Contoh Program Array");
[Link]();
int[][] duad =new int[2][3];
int k=1;
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
duad[i][j] =i;
[Link](duad[i][j]);
if(j<2) [Link](" ");
k=k++;
}
[Link]();
}
}
Arfhan
} Prasetyo@2008 STMIK Nusa Mandiri
Latihan: (Hasil disesuaikan dengan tampilan)
1. simpan dengan nama [Link]
Atau dapat juga kita gunakan deklarasi yang umumnya mudah dipahami.
import [Link].*;
String a,b,c;//deklarasi
//int na,nb,nc,h;
double na,nb,nc,h;
InputStreamReader key=new InputStreamReader([Link]);
BufferedReader k=new BufferedReader(key);
//proses input
[Link]("Contoh Program Input / Ouput ");
[Link]("Masukan Nilai A : ");
a=[Link]();
[Link]("Masukan Nilai B : ");
b=[Link]();
[Link]("Masukan Nilai C : ");
c=[Link]();
//proses konversi
//na=[Link](a);
//nb=[Link](b);
//nc=[Link](c);
na=[Link](a);//konversi data
nb=[Link](b);
nc=[Link](c);
//proses hitung
h=na*nb*nc;
int nh=(int)h;
[Link]("-------------");
[Link]("Nilai A " + na);
[Link]("Nilai B " + nb);
[Link]("Nilai C " + nc);
[Link]("-------------");
[Link]("Hasil Hitung =" + h);
[Link]("Hasil Hitung Dibulatkan =" + nh);//hasil pembulatan
1. Input program
Output program
Ketentuan soal
1. jika kelas kereta A maka nama kelas AC dan harga tiket 200000
jika kelas kereta B maka nama kelas Bisnis dan harga tiket 150000
jika kelas kereta C maka nama kelas Ekonomi dan harga tiket 100000
2. jumlah pembayaran = harga tiket dikalikan dengan jumlah beli tiket
3. jumlah pendapatan keseluruhan =hasil dari penambahan jumlah pembayaran pada
setiap transaksi pembayaran.
Contoh konsep penerapan class didalam kehidupan adalah class manusia, class hewan,
class tumbuhan, class mobil dan yang lainnya.
Modifier
Penentu aksesbilitas pada setiap class, method, data atau atribut.
Kategori modifier 1, sebagai berikut :
Public
Menyatakan bahwa kelas tersebut dapat diakses oleh kelas lain meskipun kelas tersebut
berbeda package.
Provate
Menyatakan bahwa kelas tersebut tidak dapat diakses sama sekali oleh kelas lain.
Protected
Menyatakan bahwa kelas tersebut hanya dapat diakses oleh kelas turunannya dan oleh
kelas lain yang terdapat dalam package yang sama.
Abstract
Menyatakan bahwa kelas tersebut tidak dapat melakukan instansiasi objek secara
langsung dan hanya dapat mendeklarasikan data dan method tanpa impementasinya, dan
untuk melakukannya hanya dapat dilakukan oleh kelas yang diwarisi olehnya.
Final
Menyatakan bahwa kelas tersebut tidak dapat mewarisi sifat objeknya atau dengan kata
lain kelas ini tidak dapat diturunkan menjadi subkelas.
Extends
Digunakan oleh kelas anak (subclass) untuk mengakses kelas induknya (superclass)
berupa data dan method.
Implements
Digunakan oleh setiap kelas apabila ingin mengimplementasikan sebuah interface.
Listing program :
class contohclass {
double pi=3.1416;
double r=2.12;
double kelilinglingkaran;
double luaslingkaran;
kelilinglingkaran = 2 * pi * r;
luaslingkaran=pi * r * r;
[Link]("Contoh Program Kelas");
[Link](" ");
[Link]("Keliling Lingkaran=" + kelilinglingkaran);
[Link]("luas Lingkaran=" + luaslingkaran);
}
}
Method
Merupakan sebuah cara atau suatu aktifitas dari suatu class yang menghasilkan sesuatu.
Contoh class manusia, manusia itu sedang makan. Dan juga dari kalimat tersebut dapat
kita ambil kesimpulan bahwa manusia melakukan aktifitas makan akan dapat
menghasilkan rasa kenyang.
Object
Merupakan bentuk nyata (konkrit) dari class (abstract). Kita ambil contoh sebuah
kalimat manusia itu sedang makan. Kalimat ini belum sempurna maknanya, dikarenakan
masih bersifat abstract atau umum (siapa manusia yang dimaksud dari kalimat tersebut
belum dapat didefinisikan). Apabila kita lakukan perubahan pada kalimat tersebut
menjadi Umar sedang makan barulah kalimat tersebut mengandung makna dan dapat
didefinisikan dikarenakan class manusia dinstansiasi menjadi object umar. Sebuah class
tidak dapat beraktifitas atau tidak dapat menghasilkan sesuatu tanpa object, dengan kata
lain object merupakan bentuk sederhana dari class.
Contructor
Merupakan sebuah method yang digunakan untuk mendeklarasi penginisialisasian data
dan dipanggil pada proses instansiasi objek pada suatu kelas.
public kalkulator()
}
//method perkalian
private int perkalian(int a, int b)
{ int x=0;
x=a*b;
return x;
}
//method penambahan
private int penambahan(int f,int g)
{ int v=0;
v=f+g;
return v;
}
int x,y,z,zz;
x=2;y=3;
z=[Link](x,y);//pemanggilan method
zz=[Link](x,y);//pemanggilan method
//proses cetak
[Link]("Nilai A= " +x);
[Link]("Nilai A= " +y);
[Link]("Hasil Kali A.B= " + z);
[Link]("Hasil Tambah A.B= " + zz);
}
}
Soal :
1. Buatlah class mahasiswa untuk menentukan total spp yang harus dibayar oleh seorang
mahasiswa. Total spp didapat dari spp tetap ditambah dengan spp variabel. Besarnya spp
tetap adalah Rp. 500.000. Besarnya spp variabel Rp. 100.000 per sks. ( Diketahui untuk
data atau atribut sebagai contoh adalah Nim, Nama, sks).
Tampilan programnya :
2. Buatlah class kereta diketahui data nama kereta, jurusan dan harga tiket untuk
menentukan total bayar dari penjualan tiket kereta. Total bayar didapat dari harga tiket
dikali dengan jumlah tiket yang dibeli, harga per-tiket 300000( hanya sebagai contoh
untuk semua jurusan).
Tampilan programnya ;
Listing program :
}
//method
public double gettotalgaji(){
if(gol==1){
gapok=2000000;tunj=1000000;
}
else if(gol==2){
gapok=1500000;tunj=500000;
}
else if(gol==3){
gapok=1000000;tunj=300000;
}
else{
gapok=0;tunj=0;
}
return(gapok+tunj);
}
[Link](" ");
[Link]("Nama Karyawan:"+[Link]());
[Link]("Nama Karyawan:"+[Link]());
[Link]("Total gaji:"+[Link]());
}
}
Latihan :
1. Buatlah class persegipanjang yang memiliki data berupa panjang dan lebar, class
persegipanjang mewarisi sifat kepada class persegi yang memiliki data berupa sisi,
silahkan tentukan keliling dan luasnya dari class tersebut.
Tampilan program :
Overloading
Kemampuan dari suatu objek untuk menggunakan method dengan nama sama dan daftar
parameter yang berbeda.
Override
Kemampuan dari suatu objek untuk menggunakan method dengan nama sama dan daftar
parameter yang berbeda.
Class Abstract
Merupakan Top class dari beberapa kelas turunannya, dengan kata lain kelas abstrak ini
merupakan kelas tertinggi pada hierarki kelas yang menjadi kelas induk dari kelas – kelas
yang diwarisi darinya. Dan perlu dipahami bersama bahwa kelas abstrak ini tidak dapat
melakukan instansiasi objek, yang dapat melakukan adalah kelas yang diwarisi olehnya.
Contoh penerapan, yakni kelas makhluk hidup, kelas ini merupakan kelas tertinggi dari
hierarki kehidupan makhluk hidup, kelas ini akan mewarisi sifat objectnya ke beberapa
subkelas, seperti manusia, hewan dan tumbuhan.
komputer(String m){
merk=m;
}
abstract public double gettotal();{
[Link]("Ini kelas Abstract");
}
}
[Link](" ");
[Link]("Nama Komputer :"+[Link]());
[Link]("Total Pembelian :"+[Link]());
}
}
Tampilan program :
Package
Kumpulan dari interface – interface dan kelas – kelas yang digunakan untuk melakukan
pembungkusan pada kelas, menghindari adanya kesamaan nama pada kelas – kelas yang
dibuat.
Interface
Merupakan kumpulan dari method abstrak yang tidak dapat diimplementasikan, yakni
hanya dapat mendeklarasikan struktur data dan method. Interface ini merupakan
perluasan dari kelas abtrak akan tetapi di dalam kelas abstrak method tersebut dapat di
impelementasikan.
Latihan
1. Buatah kelas interface dimana didalamnya terdapat method untuk menentukan total
gaji dari kelas direktur. Kelas direktur melakukan implements dari kelas interface
tersebut, kelas direktur memiliki data berupa gajikotor , tunjangan dan potongan.
Tampilan program:
[Link]("Hasil Pembagian:"+[Link]());
}
[Link](" ");
[Link]("Silahkan Coba Lagi");
}
}
Contoh program
//contructor
demothreadrunnable(){
t=new Thread(this);
//menjalankan thread
[Link]();
}
public void run(){
[Link]("Thread Baru Dieksekusi");
}
}
class demothread{
public static void main(String[]args){
demothreadrunnable obj=new demothreadrunnable();
}
[Link]("Thread"+[Link]()+"selesai......");
}catch (InterruptedException ie){
[Link]([Link]());
}
}
public Thread getThread(){
return t;
}
}
[Link]();
[Link]();
[Link]();
//pada saat thread t1,t2, dan t3 aktif
[Link]("[Link]().isAlive():"+[Link]().isAlive());
[Link]("[Link]().isAlive():"+[Link]().isAlive());
[Link]("[Link]().isAlive():"+[Link]().isAlive());
//
[Link]().join();
[Link]().join();
[Link]().join();
//setelah selesai
[Link]();
[Link]("[Link]().isAlive():"+[Link]().isAlive());
[Link]("[Link]().isAlive():"+[Link]().isAlive());
[Link]("[Link]().isAlive():"+[Link]().isAlive());
AbstractButton JButton
JToggleButton JCheckBox
JRadioButton
JLabel JList
JComboBox JPanel
Event Listener
(ActionListener)
Event Listener
Event Source
(ItemListener)
Event Listener
(KeyListener)
Event Listener
(Dan Lain-lain)
Object Frame
Contoh program :
public demojframe() {
super("Membuat Jendela");
setSize(300,300);
setBackground([Link]);
show();
}
//kelas untuk menutup windows frame
class PenanganKejadian extends WindowAdapter {
[Link](0);
Listing program:
import [Link].*;
import [Link].*;
import [Link].*;
public demokomponent() {
// Layout Komponen
[Link](new FlowLayout([Link],10, 20));
Listing program:
import [Link].*;
import [Link].*;
import [Link].*;
public class demoswing1 extends JFrame {
JPanel pl= new JPanel();
JLabel lbl1=new JLabel("Text Input");
JLabel lbl2=new JLabel("Text Kirim");
JTextField txt1=new JTextField();
JTextField txt2=new JTextField();
JButton btkirim=new JButton("Kirim");
JButton bthapus=new JButton("Hapus");
public demoswing1(){
//memposisikan komponen didalam JPanel atau JFrame
//(jarak x,jarak y,ukuran x,ukuran y)
[Link](null);
[Link](15,20,80,25);
[Link](15,50,80,25);
[Link](100,20,100,25);
[Link](100,50,100,25);
[Link](80,100,70,25);
[Link](150,100,70,25);
[Link](new ActionListener(){
public void actionPerformed(ActionEvent e){
kirimdata();
}
});
[Link](new ActionListener(){
public void actionPerformed(ActionEvent e){
hapus();
}
});
}
Listing program:
import [Link].*;
import [Link].*;
import [Link].*;
public demoswing(){
//memposisikan komponen didalam JPanel atau JFrame
setTitle("GUI Swing");
//memposisikan JFrame di windows ketika ditampilkan (posisi ordinat x, posisi
ordinat y, JFrame ordinat x, JFrame ordinat y)
setBounds(100,100,300,200);
[Link](new ActionListener(){
public void actionPerformed(ActionEvent e){
hitungnilai();
}
});
[Link](new ActionListener(){
public void actionPerformed(ActionEvent e){
batal();
}
});
}
//kelas untuk menutup windows JFrame
class tutupwindows extends WindowAdapter{
public void windowClosing(WindowEvent e){
[Link](0);
}
}
Tampilan program
Listing program:
import [Link].*;
import [Link].*;
import [Link].*;
public class demojcheckbox extends JFrame{
JCheckBox cb1,cb2,cb3;
JRadioButton rb1,rb2,rb3;
JTextField txt1=new JTextField(20);
public demojcheckbox(){
super("Test JCheckbox");
cb1=new JCheckBox("BOLD");
cb2=new JCheckBox("ITALIC");
cb3=new JCheckBox("BOLD+ITALIC");
rb1=new JRadioButton("JCreator",true);
rb2=new JRadioButton("Eclipse",false);
rb3=new JRadioButton("Netbeans",false);
Panel pl1=new Panel();
[Link](null);
[Link](txt1);
[Link](cb1);
[Link](cb2);
[Link](cb3);
[Link](rb1);
[Link](rb2);
[Link](rb3);
add(pl1);
Contoh program 5:
Listing program:
import [Link].*;
import [Link].*;
import [Link].*;
class demojcombobox extends JFrame{
//instansiasi object komponen
JPanel pl=new JPanel();
JLabel lblkode=new JLabel("Kode Barang");
JLabel lblnama=new JLabel("Nama Barang");
JLabel lblharga=new JLabel("Harga");
JLabel lblkuantitas=new JLabel("Kuantitas");
JLabel lbltotal=new JLabel("Total");
Choice cbpilih=new Choice();
JTextField txtnama=new JTextField();
JTextField txtharga=new JTextField();
JTextField txtkuantitas=new JTextField();
JTextField txttotal=new JTextField();
JButton btnhitung =new JButton("Hitung");
JButton btnbatal=new JButton("Batal");
[Link](60,180,85,25);
[Link](150,180,85,25);
//menambah atau meletakkan komponen
[Link](lblkode);
[Link](lblnama);
[Link](lblharga);
[Link](lblkuantitas);
[Link](lbltotal);
[Link](cbpilih);
[Link](txtnama);
[Link](txtharga);
[Link](txtkuantitas);
[Link](txttotal);
[Link](btnhitung);
[Link](btnbatal);
add(pl);
//mekanisme eventhandler
[Link](new ItemListener(){
public void itemStateChanged(ItemEvent e){
//method
prosespilih();
}
});
[Link](new ActionListener(){
public void actionPerformed(ActionEvent e){
//method
hitung();
}
});
[Link](new ActionListener(){
public void actionPerformed(ActionEvent e){
//method
batal();
}
});
//method
public void hitung(){
int harga=[Link]([Link]());
int kuantitas=[Link]([Link]());
int hasil=harga*kuantitas;
String hasilA=[Link](hasil);
[Link](hasilA);
}
//method
public void batal(){
[Link]("");
[Link]("");
[Link]("");
[Link]("");
[Link]();
}
public static void main(String[]args){
demojcombobox obj=new demojcombobox();
[Link](true);
}
}
Ketentuan soal:
Nomor induk pegawai
Jika nip=200803735, maka nama = Muhammad
Jika nip=200803736, maka nama= Abdul Aziz
Jika nip=200803737, maka nama=Abu Suhair
Jika nip=200803738, maka nama=Abu Ibrahim Al Zarqawi
Jika nip=200803739, maka nama=Arfhan Prasetyo
Golongan
Jika golongan=I, maka jabatan=Direktur, gajipokok=3000000,tunjangan=1000000
Jika golongan=I, maka jabatan=Manager, gajipokok=2000000,tunjangan=500000
Jika golongan=I, maka jabatan=Kabag, gajipokok=1500000,tunjangan=3000000
Tampilan program: