Anda di halaman 1dari 6

Tujuan:

• Memahami tentang konsep kelas dan obyek serta perbedaannya


• Mampu mendefinisikan kelas beserta komponen-komponen kelas
• Memahami overloading fungsi dan cara mewujudkannya dalam Java
• Memahami tentang enkapsulasi dan penyembunyian informasi
1. OOP (Object Oriented Programmming)
Adalah suatu paradigma baru dalam dunia rekayasa perangkat lunak (RPL),
dimana para programmer ketika membangun atau merancang P/L (baik aplikasi
maupun sistem), secara khusus berfokus pada suatu obyek, sambil memperhatikan ciri
dan perilaku yang dimiliki obyek tersebut. Sementara, sebelumnya kebanyakan P/L
dikembangkan secara prosedural yakni sangat memperhatikan aspek Input-Proses-
Output. Ciri (properties) dan perilaku (behaviour/method) yang dimiliki suatu kelas atau
objek, adalah unsur pembeda yang membedakan antara kelas/objek yang satu dengan
kelas/objek yang lainnya. Contohnya Kelas Mahluk Hidup, dapat dibedakan antara
kelas manusia, hewan dan tumbuhan, berdasarkan ciri dan perilaku yang dimiliki oleh
masing-masing kelas tersebut.
 Objek (Object) adalah benda atau konsep baik nyata maupun abstrak sekaligus
merupakan instansiasi (instance) atau turunan langsung dari kelas. Contohnya
Kelas Manusia diwakilkan oleh objek personal manusia: Amir, Tono, Lia dsb. Kelas
Hewan diwakilkan oleh objek Kerbau, Kuda, Ayam, dll.
 Kelas (Class) adalah kumpulan objek yang memiliki kemiripan baik perilaku
(behaviour/method) maupun ciri (properties) secara umum sama.
 Metode (method) adalah fungsi dan cara yang dikerjakan atau dimiliki oleh objek
atau kelas tertentu. Method dapat dibagi atas Constructor, Accessor, Mutator,
maupun Main. Construktor adalah method yang digunakan untuk memformat
bentuk (susunan) obyek baru (instance) dari kelas yang diturunkan dengan kata
kunci New . Accessor (Geter) adalah method untuk mendapatkan atau
menampilkan informasi biasanya diinisial dengan imbuhan Get (GetNama() =

Dosen Pengasuh: Emanuel Jando, S.Kom, MTI


menampilkan Nama, GetAlamat() = menampilkan Alamat, dll) sedangkan Mutator
(Seter) adalah method untuk mengubah atau mengisi nilai baru dan biasanya
diinisial dengan imbuhan Set dengan tipe fungsi adalah void. (SetLuas() =
menghitung luas, SetPotongan() = menghitung potongan, SetNama = mengisi
nama, dll). Main adalah method atau fungsi utama dalam tubuh program untuk
membuktikan hasil atau output program. Di dalam Main terdapat instruksi-
instruksi untuk membuat obyek kelas (instance) dengan kata kunci new,
memanggil (call) method-method yang pernah dibuat.
 Konstruksi (Constructor) adalah format atau kerangka dari obyek yang disusun
dan dideklarasikan di dalam kelas serta diberi nama yang sama dengan nama
kelas.
 Ciri (Properties) adalah atribut yang berisi data atau keterangan yang dimiliki
suatu objek, dan bahkan sebagai unsur pembeda yang membedakan antara objek
yang satu dengan objek yang lainnya dalam kelas yang sama. Properties = variabel
= data objek.
2. Karakteristik dari OOP
 Encapsulation (pembungkusan/pengemasan) adalah modul program yang biasa
digunakan untuk mengerjakan fungsi tertentu yang mana hasilnya dapat
diprediksi dan bermanfaat bagi pennguna, namun pengguna tidak mengetahui
secara detail cara kerja atau susunan algoritma di dalamnya. Contoh: fungsi
pangkat pow(3,2) = 9.
 Polymorphisme (banyak bentuk) adalah method dengan nama yang sama, namun
dapat dimanfaatkan atau digunakan oleh objek yang berbeda dalam kelas yang
sama. Hal ini dilihat dari nama method yang sama dengan parameter atau
argumen yang berbeda-beda. Contoh method Luas, dapat dimiliki oleh objek
Lingkaran, Segitiga, atau PersegiPanjang dari kelas BentukTrigonometri.
 Inheritance (pewarisan) adalah kelas pengikut (SubKelas) yang diturunkan dari
kelas induknya. Setiap sub kelas dapat memakai data atau method yang
diturunkan dari kelas induknya.

Dosen Pengasuh: Emanuel Jando, S.Kom, MTI


3. Notasi UML (Unified Modelling Language)
Notasi UML sering dipakai sebagai tools pengembang OOP dalam dunia Rekayasa
Perangkat Lunak.
Simbol Akses Keterangan
+ public Bisa diakses oleh kelas lain/berbeda
# protected Tidak bisa diwariskan/diturunkan
- private Hanya boleh diakses dalam kelas yang sama

Kelas dapat digambarkan dalam tiga bagian


Nama Kelas{
Daftar Atribut : tipe
Daftar Fungsi(parameter)

Contoh:Buat class OperasiAritmatika3 dari soal sebelumnya:


OperasiAritmatika3
-BilA:int;
-BilB:int;
+OperasiAritmatika3(a:int,b:int)
+setBilA(BilA:int):void
+setBilB(BilB:int):void
+getBilA:int
+getBilB:int

3.1 Contoh Kasus KTP


Untuk merancang sebuah kelas KTP bersama method-methodnya dalam program
Java, hendaknya mengikuti tips berikut:
1. Identifikasi nama kelas  nama kelas diidentikkan dengan kata benda.
2. Identifikasi atribut  atribut adalah unsur-unsur pembentuk kelas atau
konstruktor
3. Identifikasi method  nama method diidentikkan dengan kata kerja yang berisi
berbagai operasi: operasi perhitungan/rumus, operasi cetak/tampilkan, operasi
input, operasi ubah, dll. Method yang akan dibuat biasanya terdiri dari
Constructor(), Accessor(), Mutator(), dan Main().
Contoh hasil identifikasi dituangkan dalam notasi UML bertikut ini

Dosen Pengasuh: Emanuel Jando, S.Kom, MTI


Nama Kelas KTP
-NoKTP :String
Daftar Atribut -Nama :String
-Agama:String
+KTP(no:int, nm:String, ag:String) Constructor
+getNoKTP :int Accessor
+getNama :String Accessor
Fungsi/Method
+getAgama :String Accessor
+setAgama (String ag) : void Mutator
+main(args : String[]) : void Main
//membuat instance class (objek/turunan)
KTP Terbit=new KTP(221,”Made”, “Hindu”)
//Call method
3.2 Implementasi dalam Java
Notasi UML di atas merupakan contoh KTP sederhana sekaligus merupakan rencana
awal, kira-kira dalam implementasinya nanti, setidak-tidaknya program Java yang
disusun perlu mengikuti dokumen blue print (cetak biru) pengembangan yang telah
tersedia. Langkah-langkahnya:
1. Import modul pendukung dari library java : import LibraryModul;
2. Definisikan sebuah kelas yang akan dibuat: public class NamaKelas {
3. Deklarasikan seluruh atribut lokal yang diperlukan: private TipeData Atribut;
4. Definisikan seluruh fungsi/method yang diperlukan
a. Buat fungsi Konstruktor: public NamaKelas (TipeData AtributKonstruktor,...)
(Kumpulan TipeData AtributKonstruktor, disebut daftar parameter/argumen )
b. Lakukan inisialisasi/pencocokan antara {AtributKelas=AtributKonstruktor}
c. Buatlah fungsi Accessor: public TipeFungsi GetNamaFungsi( );
d. Buatlah fungsi Mutator: public void SetNamaFungsi(TipeData AtributFungsi)
e. Buatlah Fungsi Main: public static void main(String args[]){
f. Buat instance kelas (objek) berdasarkan susunan Konstruktor:
NamKelas VariabelInstance = new NamaKelas(parameter/argumen)
g. Selanjutnya panggil (call) fungsi-fungsi sesuai keperluan antara lain:
i. Menginput/mengubah data (mutator)
ii. Menampilkan data (accessor)
Dosen Pengasuh: Emanuel Jando, S.Kom, MTI
h. Selesai.

Program Lengkap Java: KTP versi 01


import javax.swing.*; // Fungsi Mutator/mengubah nilai
public void setAgama(String agama)
public class KTP{ {Agama=agama;}
private String noKTP; //Fungsi utama --Untuk
--Untuk membuktikan hasil output
private String Nama; public static void main(String args[]){
private String Agama;
//menciptakan instance kelas (obyek)=cetak output
//konstruktor & inisialisasi KTP Terbit=new KTP(23108012,"Oman","Islam");
public KTP (int no,String nm,String ag) System.out.println("Nomor KTP :"+Terbit.getNoKTP());
{ System.out.println("Nama :"+Terbit.getNama());
noKTP=no; Nama=nm; Agama=ag; System.out.println("Agama :"+Terbit.getAgama());
} /*
System.out.println("Nomor KTP :"+Terbit.noKTP);
//Fungsi-
//Fungsi-Fungsi/Method System.out.println("Nama :"+Terbit.Nama);
System.out.println("Agama :"+Terbit.Agama);
// Fungsi Accessor/mendapatkan nilai */
public int getNoKTP() System.out.println("");
{return noKTP;} // Set Nilai Agama
Terbit.setAgama("Katolik");
public String getNama()
{return Nama;} //Tampilkan Nilai Agama yang diubah
System.out.println("Agama Baru:"+Terbit.Agama);
public String getAgama() }
{return Agama;} }

Contoh Output KTP Ver.01 Akses Global(Accessor) Akses Lokal (Atribut)


Nomor KTP : 23108012 Terbit.getNoKTP(); Terbit.noKTP;
Nama : Oman Terbit.getNama(); Terbit.Nama;
Agama : Islam Terbit.getAgama(); Terbit.Agama;
Agama Baru : Katolik Metode Akses

KTP versi 02
import javax.swing.*; //import unit kelas yang diperlukan
public class KTP //Membuat kelas dan deklarasi atribut
{private int noKTP; private String Nama; private String Agama;

public KTP (int no,String nm,String ag) //Konstruktor/struktur obyek & inisialisasi atribut
{noKTP=no; Nama=nm; Agama=ag;}

public int getNoKTP() {return noKTP; } //Fungsi Accessor/menampilkan informasi


public String getNama() {return Nama; }
public String getAgama() {return Agama;}

public void setAgama(String setAg) {Agama=setAg;} //Fungsi Mutator/mengubah nilai data


//Fungsi utama --
--Untuk
Untuk membuktikan hasil output
public static void main(String args[]){ //atau ...main(String[]args)
//memasukkan data secara interaktif dari keyboard
Dosen Pengasuh: Emanuel Jando, S.Kom, MTI
String strNomor = JOptionPane.showInputDialog("Masukkan Nomor");
int Nomor = Integer.valueOf(strNomor);
String strNama = JOptionPane.showInputDialog("Masukkan Nama ");
//String Nama= String.valueOf(strNama); bisa diabaikan
String strAgama = JOptionPane.showInputDialog("Masukkan Agama");
//String Agama = String.valueOf(strAgama); bisa diabaikan
//membuat instance (KTP) berdasarkan nilai pada variabel input
KTP Terbit=new KTP(Nomor,strNama,strAgama); //KTP Terbit=new KTP(noKTP,Nama,Agama);
JOptionPane.showMessageDialog(null,"Nomor KTP : "+Terbit.noKTP+"\n"+
"Nama : "+Terbit.Nama+"\n"+
"Agama : "+Terbit.Agama);
/*--------------------------------------------------------------------------------------------------------
/*--------------------------------------------------------------------------------------------------------
String Pesan1=String.format("Nomor KTP: %d\n Nama :%s\n Agama :%s",
Terbit.getNoKTP(),Terbit.getNoKTP(),Terbit.getNama());
Terbit.getNoKTP(),Terbit.getNoKTP(),Terbit.getNama() JOptionPane.showMessageDialog(null,Pesan1);

String Pesan1=String.format("Nomor KTP: %d\n Nama :%s\n Agama :%s",


Nomor,strNama,strAgama);
Nomor,strNama,strAgama JOptionPane.showMessageDialog(null,Pesan1);
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------*/
---------------------------------------------------------------------------------*/
//Konfirmasi Ganti Agama
String pesan="Anda Ingin Ganti Agama?"; String judul="Konfirmasi Agama";
int ok=JOptionPane.showConfirmDialog(null,pesan,judul,JOptionPane.YES_NO_OPTION);
if (ok==0)
{String strAgB = JOptionPane.showInputDialog(null,"Masukkan Agama ");
String AgBaru=String.valueOf(strAgB);

Terbit.setAgama(AgBaru); //Meng-
//Meng-update data agama

JOptionPane.showMessageDialog(null,"Agama Baru "+Terbit.Nama+" = "+Terbit.Agama);


} /*Menampilkan Data yang sudah ter-
ter-update*/

//Konfimasi Keluar
String PsOut="Anda Ingin Keluar?"; String JdOut="Konfirmasi Keluar";
int ok2=JOptionPane.showConfirmDialog(null,PsOut,JdOut,JOptionPane.YES_NO_OPTION);
if (ok2==0)
System.exit(0);
}
}
Catatan:
JOptionPane.showInputDialog(null,”Masukkan Nama”);argumen ”null” bisa di awal, akhir,
akhir atau hapus

Rancanglah Notasi UML dan Program untuk:


1. Class MataKuliah
2. Class Mahasiswa
Kumpulkan: Senin / 26-
26-11-
11-2012

Dosen Pengasuh: Emanuel Jando, S.Kom, MTI

Anda mungkin juga menyukai