Pertemuan Pembelajaran ke : 1
1
1.1.Mengapa Pemrograman Berorientasi Obyek (PBO)
Selama ini kita telah banyak membuat program dengan pendekatan terstuktur dimana
dalam pendekatan ini kita lebih banyak merancang program dengan pendekatan
proses yang merupakan karakteristik suatu sistem. Dengan pendekatan ini dalam
membuat aplikasi, anda melakukan pendekatan sistem untuk sedekat mungkin
memodelkan sistem aplikasi yang hendak dibuat dengan model DFD (Data Flow
Diagram) dan ERD (Entity Relation Diagram).
Muncul paradigma yang lebih maju dalam mengembangkan aplikasi yaitu dengan
analisis berbasis obyek, desain berbasis obyek dan pemrograman atau implementasi
berbasis obyek atau berorientasi obyek. Dalam pendekatan ini, kita melakukan
perancangan dan implementasi aplikasi berdasarkan asumsi obyek-obyek apa saja
yang muncul dalam aplikasi yang hendak kita bangun. Obyek adalah kesatuan entitias
yang memiliki sifat dan tingkat laku atau kapasitas yang dapat dia perbuat. Obyek ini
seperti halnya obyek di dunia nyata atau seringkali kita sebut sebagai benda baik
berupa benda berbentuk fisik seperti mobil, rumah, meja, papan tulis, handphone, alat
tulis ataupun benda yang tak berbentuk sepreti kota, rekening bank, window, nilai,
dan lain-lain.
Jadi obyek dalam pemrograman berorientasi obyek adalah kesatuan terkecil bagian
atau unit program yang mempunyai sifat/karakteristik/atribut dan tingkat laku/fungsi
atau disebut metoda yang menggambarkan kemampuan obyek tersebut untuk
melakukan sesuatu. Contoh obyek mobil harus mempunyai kapasitas untuk bergerak
maju, mundur, ganti persneling, berbelok kiri ataupun berbelok kanan. Obyek-obyek
ini nanti akan berinteraksi dalam program utama (main program) sehingga obyek-
obyek tersebut dapat berinteraksi dengan obyek lain dengan cara bertukar pesan dan
memanggil metoda dari suatu obyek
Dari uraian di atas tampak bahwa pemrograman terstuktur akan sangat berbeda
dengan pemrograman berorientasi obyek, Dalam pemrograman terstruktur kita
diharuskan melakukan kegiatan analisis, desain dan pemrograman mulai dari tahapan
awal atau kegaitan-kegiatan pengembangan aplikasi selalu dimulai dari kondisi awal
atau nol lagi. Coba anda bayangkan setiap pengembangan aplikasi selalu dimulai dari
tahapan awal yang sederhana. Hal ini dilakukan karena kegiatan pengembangan
aplikasi tidak mampu untuk mendaur ulang bagian atau unit dari aplikasi yang ada.
2
2. Aplikasi yang kita kembangkan diharapkan akan dapat lebih handal karena kita
lebih fokus pada pemikiran untuk menemukan obyek yang mempunyai
karakteristik dan metoda tertentu.
3. Dapat didaur ulang (Reusble) dalam arti obyek yang kita bangun dapat kita daur
ulang pada aplikasi yang lain.
4. Dapat dipelihara (maintainable)
5. Dapat diperluas (extendable)
6. Efisiensi waktu pengembangan aplikasi.
Aplikasi yang kita kembangkan menggunakan bahasa pemrograman Java. Selain Java
ada beberapa bahasa pemrograman yang dapat digunakan untuk mendukung
Pemrograman Berorientasi Obyek yaitu Bahasa C, SmallTalk dan Bahasa Pascal.
Kuunggulan bahasa Java adalah karena ;
1. Java bersifat sederhana dan mudah.
2. Java adalah bahasa pemrograman yang berorientasi pada obyek
3. Java bersifat terdistribusi
4. java bersifat multipFlatform
5. java bersifat multipThread
main()
}
Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program
utama berada didalam fungsi main(). Berarti dalam setiap pembuatan program utama,
maka dapat dipastikan seorang pemrogram menggunakan minimal sebuah fungsi.
Pembahasan lebih lanjut mengenai fungsi akan diterangkan kemudian. Yang sekarang
coba ditekankan adalah kita menuliskan program utama kita didalam sebuah fungsi
main(). Jangan lupa bahwa Java bersifat case sensitive artinya penulisan huruf kecil dna
huruf besar berbeda artinya, sehingga, nama kotak dan Kotak berbeda artinya.
Format penulisan dalam coding harus memperhatikan kaidah tertentu, terutama untuk
penulisan :
1. Komentar
3
Seringkali dalam source code kita membutuhkan penulisan komentar. Yang penting
dipahami adalah bahwa komentar tidak pernah dicompile oleh compiler. Dalam Java
terdapat 2 jenis komentar, yaitu:
1. Semicolon
Tanda semicolon “;” digunakan untuk mengakhiri sebuah pernyataan. Setiap
pernyataan harus diakhiri dengan sebuah tanda semicolon.
Berikut adalah beberapa contoh program yang sederhana dengan tujuan untuk
memberi pemahaman kepada anda tentang bagaimana struktur program dalam Java
dan bagaimana cara melakukan kompilasi. Berikut adalah langkah-langkah yang
mesti anda lakukan dalam membuat program dalam java :
Langkah ke-1
Tulis program salam.java, simpan di directory yang sudah dipersiapkan.
/**
* Title : Salam-program pertama
*Deskripsi : Menampilkan tulisan salam ke console
* Author : Ketik nama anda disini
* Tanggal : isi tanggal dibuat
* nama file : salam.java, huruf besar kecil sangat berbeda
4
class salam
{
/**Main Method*/
public static void main(String[] args)
{
System.out.println("Saya sedang belajar Java"); //mencetak ke layar
monitor
}
}
Output :
5
System.exit( 0 ); // Keluar dari program
}
}
Output :
/**
* Title : binatang program ketiga
* Deskripsi : Mendemonstrasikan bagan dan deklarasi kelas,
* data dan method sederhana, dari Mamalia Darat.
* Author : tulis nama anda
* nama file : binatang.java
*/
}
}
class Kucing {
// Method yang mengembalikan suara kucing
public String mengeong() {
String suara = new String("Meoong...");
return suara;
6
}
}
1.4. Latihan
1. Buat kelas kambing, kelas macan, kelas anjing dan kelas kuda. Deklarasikan kelas
dan method seperti halnya kelas kucing.
2. Modifikasi kelas binatang sehingga suara kambing, macan, anjing dan kuda juga
tampil di kelas binatang. Contoh output adalah sbb :
7
Tujuan Pembelajaran
1. Mahasiswa memahami pengertian suatu kelas, obyek dan instance
2. Mahasiswa dapat memodifikasi atribut dan metoda yang terdapat dalam
suatu kelas.
3. Mahasiswa mampu membuat program yang teridri suatu kelas, obyek dan
instance
8
2.1. Obyek
Sebagaimana obyek di alam yang mempunyai ukuran dan tingkah laku, sebuah obyek
di dalam program juga bisa mempunyai data dan prosedur. Di dalam Java, rancangan
sebuah obyek ditulis dalam sebuah class. Di dalam class data diimplementasikan
sebagai member variable, sedangkan prosedur yang mengolah data tersebut
diimplementasikan dalam method.
2.2. Kelas
Dalam konsep PBO, kelas adalah merupakan wadah yang berisi absraksi atau model
dari suatu obyek atau kelas dapat dikatakan sebagai kumpulan obyek yang
mempunyai data/atribut dan metoda yang sama. Contoh yang menjelaskan hubungan
antara kelas dan obyek secara sederhana adalah misal karyawan adalah suatu kelas,
sedangkan Tono, Tini, Tina adalah nama-nama anggota atau obyek dari kelas
karyawan.
9
Untuk dapat menciptakan anggota atau obyek suatu kelas, maka kelas harus dapat
diinstansiasikan dengan kata kunci new atau memanggil konstruktor kelas tersebut.
Class ini bisa di-“instantiate”, dengan memanggil constructor-nya. Instance dari
sebuah class disebut sebagai obyek. Kelas (Class) adalah inti dan hal yang penting
didalam java. class adalah konstruksi logika dimana seluruh program java akan dibuat
karena class mendefinisikan bentuk dan sifat dari sebuah objek.
Class nama_class {
Data atau variable-variabel yang didefinisikan dalam class disebut instance variable.
Kode program dimuat atau ditulis dalam sebuah method. Variabel dan method yang
didefinisikan di dalam class disebut anggota class. Semua method memiliki bentuk
umum yang sama seperti main() yang telah sering kita gunakan di modul 1 Tetapi
class java tidak harus selalu memakai method main() sebab kelas-kelas java yang
tidak memakai method main() nantinya akan dipanggil dalam main().
Berikut adalah contoh kelas sederhana yang hanya terdiri 2 atribut atau variabel tanpa
disertai deklarasi method :
Class balok {
double panjang;
double lebar;
1
}
ATAU
2.3. Scope
Class modifier adalah keyword yang digunakan untuk menentukan sifat dari suatu class.
Ada tiga buah class modifier, yaitu public, final, dan abstract.
public
Class Person dideklarasikan dengan menggunakan class modifier public. Jika sebuah
class dideklarasikan dengan menggunakan keyword public (public class), class tersebut
akan bisa diakses dari luar package-nya. Jika tidak, maka class tersebut hanya bisa
diakses oleh class-class lain yang berada di package-nya sendiri. Pada suatu unit
kompilasi (file) hanya boleh ada satu public class.
final
Jika sebuah class dideklarasikan sebagai final, maka class tersebut tidak akan bisa di-
extend. Class yang mempunyai class modifier final akan menjadi daun pada pohon
hierarki class.
abstract
Class yang bersifat abstract biasanya digunakan untuk menentukan behaviour umum dari
class-class lain yang akan menjadi subclass-nya. Class yang bersifat abstract adalah
sebuah class yang belum lengkap (ada begian yang belum diimplementasikan), dan tidak
1
bisa diinstansiasi. Class yang abstract menandai behaviour (method) yang sudah
diperkirakan muncul pada subclass-nya melalui deklarasi abstract methods. Method
abstract ini harus diimplementasikan terlebih dahulu sebelum kita menggunakan class
abstract tersebut. Hanya class yang bersifat abstract yang diperbolehkan untuk
mempunyai abstract methods
class balok
{
double panjang;
double lebar; Atribut yang dimiliki oleh
double tinggi; Kelas balok
}
class demobalok
{
public static void main(String[] args)
{
balok baloksaya = new balok(); Proses instansiasi dimana
double volume; Baloksaya adalah obyek
baloksaya.panjang = 20; YANG instansiasi/dicipta dari
baloksaya.lebar = 12; kelas balok
baloksaya.tinggi = 25;
volume = baloksaya.panjang * baloksaya.lebar * baloksaya.tinggi;
System.out.println ("Volume adalah " + volume);
}
}
1
class balok
{
double panjang ;
double lebar ;
double tinggi ;
}
class demobalok2
{
public static void main(String[] args)
{
balok baloksaya1 = new balok();
balok baloksaya2 = new balok(); Proses instansiasi dimana
double volume; Baloksaya1 dan baloksaya2 adalah
obyek YANG instansiasi/dicipta
baloksaya1.panjang = 20; dari kelas balok
baloksaya1.lebar = 12;
baloksaya1.tinggi = 25;
baloksaya2.panjang = 100;
baloksaya2.lebar = 120;
baloksaya2.tinggi = 250;
1
LISTING PROGRAM KE-3
class balok
{
double panjang ;
double lebar ;
double tinggi ;
void volume()
{
System.out.print ("Volume adalah : ");
System.out.println (panjang*lebar*tinggi);
}
}
class demobalok3
{
public static void main(String[] args)
{
balok baloksaya1 = new balok();
balok baloksaya2 = new balok();
balok baloksaya3 = new balok();
baloksaya1.panjang = 20;
baloksaya1.lebar = 12;
baloksaya1.tinggi = 25;
baloksaya2.panjang = 100;
baloksaya2.lebar = 120;
baloksaya2.tinggi = 250;
1
baloksaya3.panjang = 70;
baloksaya3.lebar = 30;
baloksaya3.tinggi = 40;
baloksaya1.volume();
baloksaya2.volume();
baloksaya3.volume();
}
}
class balok
{
double p;
double l;
double t;
String warna;
double volume ()
{
return p*l*t;
}
void setDimensi (double p,double l,double t)
{
p = p;
l = l; Suatu method untuk mengisi
t = t; Atau mengeset
} dimensi/ukuran balok sesuai
void ubahwarna(String warnabaru) dengan parameter p, l dan t
{
warna = warnabaru;
}
class demobalok
{
public static void main(String [] args)
{
balok baloksaya = new balok();
double volume;
String warna;
String warnabaru = "biru";
baloksaya.p = 20;
baloksaya.l = 15;
1
baloksaya.t = 25;
baloksaya.warna = "coklat";
volume = baloksaya.p*baloksaya.l*baloksaya.t;
System.out.println("Volume adalah : " + volume);
baloksaya.setDimensi(10,15.5,20);
volume = baloksaya.volume();
System.out.println("Volume = " + volume);
baloksaya.ubahwarna("biru");
System.out.println("Warna = " + baloksaya.warna);
}
}
OUTPUT :
class Manager2
{
String nama;
String jabatan;
double gaji_pokok;
double tunjangan;
1
}
}
class Test1
{
public static void main(String[] args)
{
Manager2 managersaya = new Manager2 ();
double total_gaji;
managersaya.inputdata("Ayu","Sekretaris",1500000,1000000);
total_gaji = managersaya.hitung_gaji(managersaya.gaji_pokok ,
managersaya.tunjangan);
managersaya.cetakData();
System.out.println("Total gaji anda :" +total_gaji);
}
}
OUTPUT :
class Buruh2
{
String nama;
double upah;
double jumlah_hadir;
double hitung_gaji(double up , double jh )
{
return up*jh;
}
void inputdata(String nm , double up , double jh)
{
nama = nm;
upah = up;
jumlah_hadir = jh;
1
}
void cetakData()
{
System.out.println("Nama anda :" +nama);
System.out.println("Upah anda :" +upah);
System.out.println("Jumlah hadir anda :" +jumlah_hadir);
}
}
class Test3
{
public static void main(String[] args)
{
Buruh2 buruhsaya = new Buruh2 ();
double total_gaji;
buruhsaya.inputdata("Panji",500000,10);
total_gaji = buruhsaya.hitung_gaji(buruhsaya.upah ,
buruhsaya.jumlah_hadir);
buruhsaya.cetakData();
System.out.println("Total gaji anda :" +total_gaji);
}
}
OUTPUT :
2.5. Latihan
1. Buat kelas segitiga dengan atribut ; ALAS dan TINGGI dan buatlah satu metoda
(method) dengan nama hitung luas segitiga
2. Buat kelas lingkaran dengan atribut ;Jari-jari dan dua buah method dengan nama
hitung luas lingkaran dan hitung keliling.
3. Buat kelas bujursangkar dengan atribut sisi dan dua buah method dengan nama
hitung luas bujursangkar dan hitung bujursangkat
4. Perhatikan source code di bawah ini, buat method main() untuk memanggil kelas
Pegawai, konstruktornya dan beberapa method yang dimilikinya. Isilah main()
dengan kode sebebas anda.
1
public class Pegawai {
// Deklarasi variable-variable
private String nama;
private int umur;
// Deklarasi method-method
public String getNama() {
return nama;
}
1
Tujuan Pembelajaran
1. Mahasiswa memahami pengertian suatu kelas, obyek dan instance
2. Mahasiswa dapat mendeklarasikan suatu kelas dengan menggunakan
konstruktor dan mengakses atributnya dengan statement this.
3. Mahasiswa dapat membuat dan memodifikasi kelas dengan menggunakan
kontruktor.
Pertemuan Pembelajaran ke : 4
2
3.1 Konstruktor
Anda dapat membayangkan misalkan ada suatu metoda dengan anama initialize( ) untuk
melakukan penciptaan setiap kelas yang anda buat. Ini berarti pada setiap penciptaan
obyek maka kita harus memanggil metoda initialize( ). Di dalam Java hal ini tidak
diperlukan lagi sebab di Java sudah disiapkan mekanisme constructor. Jika suatu kelas
mempunyai method constructor, maka secara otomatis akan memanggil konstruktor
tersebut bilamana suatu obyek diciptakan atau diinstansiasi. Sehingga inisialisasi dalam
Java dijamin dengan cara mekanisme konstruktor, tinggal bagaimana kita mengisi code
pada method konstruktor tersebut.
Class nama_class {
2
Berikut adalah contoh penulisan sebuah class. Class berikut adalah sebuah class yang
digunakan untuk merepresentasikan orang-orang pegawai yang tergabung dalam kelas
pegawai atau Pegawai (boleh huruf besar atau kecil yang penting konsistensi)
class Pegawai {
// Deklarasi variable-variable
private String nama;
private int umur;
nama = namaPegawai; ‘
umur = umurPegawai;
}
// Deklarasi method-method
public String getNama() { Nama konstruktor=nama
return nama; kelas
}
}
} //akhir class Pegawai
Coba anda bandingkan antara deklarasi kelas yang TANPA Konstrukor dengan kelas
yang dideklarasikan DENGAN Konstruktor. Dengan adanya mekanisme konstruktor,
penciptaan obyek dalam main() akan otomatis memanggil konstruktor kelas.
2
Berikut adalah kode main() untuk memanggil kelas Pegawai
// dan seterusnya
}
}
Pada main() di atas, tampak bahwa adanya mekanisme instansiasi obyek Pegawai dan
sekaligu pemanggilan konstruktor Pegawai dengan kode sbb :
Pemanggilan konstruktor
Langkah selanjutnya adalah pemanggilan method getNama() dan getUmur sehingga ada
nilai yang dikembalikan (return) dari method tersebut yang dipanggil di kelas Pegawai
dan dikembalikan di main() kepada variabel yang ditunjuk sesuai dengan tipe
variabelnya.
umur (kelas
2 Pegawai) dikembalikan ke
umurChandra di main() dengan
memanggil method getUmur()
3.2. Fungsi Konstruktor
Konstruktor adalah method yang dipanggil pada saat pembentukan (instansiasi) suatu
obyek dan berfungsi untuk memberi nilai awal atau inisial pada atribut atau variabel
obyek. Biasanya tidak semua atribut obyek perlu diinisialisasi, namun dapat dipilih
atribut yang penting saja yang nilainya perlu diisi pada saat penciptaan obyek. Jadi
konstruktor merupakan method yang berfungsi untuk menginisialisasi atribut instans
yang akan dimiliki suatu obyek terlebih pada saat obyek itu dibentuk dengan mekanisme
instansiasi. Sehingga setelah anda mengenal cara melakukan instansiasi dengan
kontruktor, anda tidak perlu lagi menggunakan instansiasi dengan perintah new.
2
this.alamat = alamat;
this.kota = kota;
}
2
String kotaDevia = Devia.getKota();
String kotaNingrum = Ningrum.getKota();
}
}
OUTPUT :
2
LISTING PROGRAM KE-2
2
double tinggiBalok = Balok.getTinggi();
double volumeBalok = Balok.getVolume();
}
}
OUTPUT :
3.4. Latihan
2
5. Buatlah kelas Rumah lengkap dengan konstruktornya yang mempunyai atribut
sbb : alamat, kota, panjang, lebar, tahunDiBangun, Notelpon, harga dan
mempunyai method : getHarga(), getTahunDiBangun(), ubahharga(),
UbahAlamat().
2
3