IF34348 - PEMROGRAMAN LANJUT
OBJECT ORIENTED PROGRAMMING (OOP)
Oleh : Andri Heryandi, M.T.
06
DEFINISI IF34348 - Pemrograman Lanjut
Object Oriented Programming (OOP) / Pemrograman Berbasis Objek (PBO) adalah konsep pemrograman yang menerapkan konsep objek, dimana objek terdiri dari atribut (informasiinformasi mengenai objek) dan method (prosedur/proses) yang bisa dilakukan oleh objek tersebut. Software/Perangkat lunak terdiri dari objek-objek yang saling berinteraksi.
Oleh : Andri Heryandi, M.T.
2
CONTOH IF34348 - Pemrograman Lanjut
Contoh : Object : Manusia Attribut Method
: Nama, tinggi, umur, berat badan dll : Makan, Minum, Berjalan, Bekerja
Object : Windows Attribut Method
: Left, Top, Width, Height, BackgroundColor, : OnClick, OnClose, OnDoubleClick
Object : Keluarga Attribut Method
: ayah, Ibu, Anak[] : TambahAnak,
Oleh : Andri Heryandi, M.T.
3
CONTOH IF34348 - Pemrograman Lanjut
Perhatikan mesin ATM Sebuah mesin ATM terdiri dari elemen-elemen berikut :
Display Screen (Layar) Screen Button (Tombol) Receipt Printer Card Reader Speaker Cash Dispenser Deposit Slot Keypad
Di dalam konsep OOP, setiap setiap elemen tersebut berinteraksi dengan mengirimkan pesan (message) tertentu.
Oleh : Andri Heryandi, M.T.
4
CONTOH IF34348 - Pemrograman Lanjut
Interaksi ketika penekanan tombol Ambil Uang Rp. 200.000 Speaker mengeluarkan bunyi beep. CashDispenser mengeluarkan uang 200.000 Jika uang diambil, maka Receipt Printer mencetak faktur, Jika uang tidak diambil, Uang dimasukkan kembali ke Cash Dispenser, Layar kembali ke menu Utama.
Oleh : Andri Heryandi, M.T.
5
FITUR-FITUR OOP IF34348 - Pemrograman Lanjut
Encapsulation Penggabungan antara data (attribut) dengan prosedure (method) yang mengolahnya. Inheritance Penurunan sifat (attribut dan method) dari Class Parent (SuperClass) ke Class Child (SubClass). Ini menandakan bahwa OOP mendukung konsep code reuse dimana data-data yang ada di class parent bisa di kenal di kelas child. Polymorphism Sebuah kemampuan dari sebuah objek untuk bekerja dalam berbagai bentuk. Penggunaan umum polymorphism biasanya digunakan ketika sebuah reference dari class parent digunakan untuk mengacu ke class child. Oleh : Andri Heryandi, M.T.
6
CLASS DAN OBJECT IF34348 - Pemrograman Lanjut
Class Class adalah cetak biru/prototipe/pendefinisian dari suatu benda. Didalam class-lah attribut dan method suatu object didefinisikan. Contoh : Manusia, Window
Object Object adalah bentuk instance/nyata/real/hidup dari sebuah class. Contoh : Shelly:Manusia (Object Shelly mempunyai Class Manusia) Form1:Window (Object Form1 mempunyai class Window)
Oleh : Andri Heryandi, M.T.
7
CLASS DAN OBJECT IF34348 - Pemrograman Lanjut
Setiap object pasti memiliki class (sebagai templatenya) Setiap object harus diinstansiasi/dihidupkan terlebih dahulu sebelum digunakan. Instansiasi sebuah objek dapat dilakukan dengan keyword new. Contoh berikut : NamaClass NamaObject; NamaObject=new NamaClass(parameter_konstruktornya);
Untuk mengakses attribut atau method suatu object, gunakan tanda titik setelah nama objeknya. Kucing catty=new Kucing("Catty"); catty.warna="putih"; catty.jalan(); Mengakses
atribut/method Oleh : Andri Heryandi, M.T.
8
CONTOH PENGGUNAAN CLASS IF34348 - Pemrograman Lanjut
String di java sebenarnya adalah sebuah Class. Method-method yang ada di class String charAt(index) : Mereturnkan huruf pada posisi ke-index. Index 0 menunjukkan huruf pertama. equals(string_lain) : Mereturnkan true jika isi string sama dengan isi string_lain (case sensitive). equalsIgnoreCase(string_lain) : Mereturnkan true jika isi string sama dengan string lain dengan mode perbandingan case insensitive. length() : Mereturnkan berapa banyak huruf dalam string. toUpperCase() : Mereturnkan string yang berisi bentuk kapital dari stringnya. toLowerCase() : Mereturnkan string yang berisi bentuk huruf kecil dari stringnya.
Oleh : Andri Heryandi, M.T.
9
CONTOH PENGGUNAAN CLASS IF34348 - Pemrograman Lanjut
p u bli c c lass Test Str ing { pu bli c sta tic voi d mai n(St rin g[] a rgs ) { S trin g n ama = " Un iv ers itas Komp ute r Ind ones ia" ; S yste m.o ut.pr in tl n (" ISI S TRIN G : "+ na ma ) ; S yste m.o ut.pr in tl n ( " Panja ng : "+ na ma.l eng th ()) ; S yste m.o ut.pr in tl n (" Upper Cas e : "+ na ma.t oUp perCa se () ); S yste m.o ut.pr in tl n (" Lower Cas e : "+ na ma.t oLo werCa se () ); S yste m.o ut.pr intl n (" =UNIK OM : "+ na ma.e qua ls ("U NIKO M") ); } }
ISI STRING Panjang Upper Case Lower Case =UNIKOM Oleh : Andri Heryandi, M.T.
: : : : :
Universitas Komputer Indonesia 30 UNIVERSITAS KOMPUTER INDONESIA universitas komputer indonesia false 10
MEMBUAT CLASS SEDERHANA IF34348 - Pemrograman Lanjut
Sintak pembuatan class sederhana class NamaKelas { tipe_data nama_atribut ; tipe_data nama_atribut ; nama_kelas nama_object ;
Daftar Attribut Daftar Method (Procedure/Function /Constructor)
NamaKelas (parameter){ … // isi konstruktor } void nama_method (parameter){ … // isi method berbentuk procedure } tipe_data nama_method_function (paramter ){ … // isi method berbentuk function return ….; } } Oleh : Andri Heryandi, M.T.
11
CONTOH CLASS SEDERHANA IF34348 - Pemrograman Lanjut
Buatlah sebuah class bernama Titik yang digunakan untuk menyimpan sebuah titik koordinat. Setiap titik mempunyai atribut posisi X dan attribut posisi Y. Class ini harus dapat melakukan hal berikut :
Memberikan nilai default (X=0, Y=0) ketika X dan Y belum didefinisikan. Mengisi Nilai X Mengisi Nilai Y Mengisi Nilai X dan Y (sekaligus) Menampilkan nilai X dan Y Pindah ke Koordinat Lain (berdasarkan jarak atau ke titik tertentu) Menghitung Jarak Ke Titik Lain
Oleh : Andri Heryandi, M.T.
12
CONTOH CLASS SEDERHANA IF34348 - Pemrograman Lanjut
c l ass Ti tik { d oubl e x ; d oubl e y ; T itik ( ) { x =0; y =0; } T itik (do uble x1,d oub le y1 ){ x =x1; y =y1; } v oid tam pil () { S yste m.o ut.pr intl n (" ("+x+ ","+ y+" )"); } v oid pin dah (d oubl e x 1, do uble y1 ){ x =x1; y =y1; } Oleh : Andri Heryandi, M.T.
13
CONTOH CLASS SEDERHANA IF34348 - Pemrograman Lanjut
v oid pin dah ( T it ik t) { x=t.x; y=t.y; } v oid isi X (dou ble x1) { x =x1; } v oid isi Y (dou ble y1) { y =y1; } v oid isi XY (do ub le x1 ,doub le y 1){ x =x1; y =y1; }
Oleh : Andri Heryandi, M.T.
14
CONTOH CLASS SEDERHANA IF34348 - Pemrograman Lanjut
d oubl e j arakK e ( do ubl e x1, dou ble y1){ d oubl e j arak ; j arak = Ma th.po w ( Ma th. pow ( x - x1, 2)+ Math. pow ( y y 1 ,2) ,0. 5); r etur n j arak ; } d oubl e j arakK e ( Ti tik t 2 ) { d oubl e j arak ; j arak = Ma th.po w ( Ma th. pow ( x - t2. x,2 )+ Mat h.po w ( y t 2 .y, 2), 0.5); r etur n j arak ; } }
Math.pow(x,y) = 𝑥 𝑦
Oleh : Andri Heryandi, M.T.
15
MEMBUAT KELAS TESTER IF34348 - Pemrograman Lanjut
Kelas tester digunakan sebagai class untuk melakukan uji coba terhadap class yang telah dibuat. Sebaiknya kelas tester dibuat terpisah dari file classnya.
Oleh : Andri Heryandi, M.T.
16
MEMBUAT KELAS TESTER IF34348 - Pemrograman Lanjut
p ub li c cl ass T it ik Te ste r { p ub li c sta ti c vo id ma in (S tr in g[] a rg s) { T it ik t 1, t2; t 1= ne w Ti tik () ;/ / Ta npa p ar am et er x= 0, y =0 t 2= ne w Ti tik (9 ,4 ); // x= 9, y =4 S ys te m. ou t.p ri nt (" T1 : ") ; t 1. ta mp il (); S ys te m. ou t.p ri nt (" T2 : ") ; t 2. ta mp il (); t 1. pi nd ah (5, 1) ; S ys te m. ou t.p ri nt (" Se tel ah p in da h T 1 : ") ; t 1. ta mp il (); d ou bl e ja rak ; j ar ak =t 1. jar ak Ke (t 2) ; S ys te m. ou t.p ri nt ln (" Jar ak d ar i T1 ke T 2 : "+ j ar ak ); } T1 : (0.0,0.0) }
Oleh : Andri Heryandi, M.T.
T2 : (9.0,4.0) Setelah pindah T1 : (5.0,1.0) Jarak dari T1 ke T2 : 5.0
17
CLASS CALCULATOR IF34348 - Pemrograman Lanjut
Buatlah class Calculator Attribut
:
Operan1 bertipe double Operan2 bertipe double
Method
:
IsiOperan1(double x) : Mengisi atribut operan1 dengan nilai x IsiOperan2(double x) : Mengisi atribut operan2 dengan nilai x Tambah() : Mereturnkan nilai Operan1 + Operan2 Kurang() : Mereturnkan nilai Operan1 – Operan2 Kali() : Mereturnkan nilai Operan1 * Operan2 Bagi() : Mereturnkan nilai Operan1 / Operan2 Pangkat() : Mereturnkan nilai Operan1^Operan2
Kelas tersebut harus bisa dijalankan dengan menggunakan Class CalculatorTester (di slide berikutnya) Oleh : Andri Heryandi, M.T.
18
CLASS CALCULATORTESTER IF34348 - Pemrograman Lanjut
public class CalculatorTester { public static void main(String[] args ) { Calculator c=new Calculator(); c.isiOperan1(7); c.isiOperan2(5); System.out.println ("Tambah : "+ c.tambah ()); System.out.println ("Kurang : "+ c.kurang ()); System.out.println ("Kali : "+ c.kali()); System.out.println ("Bagi : "+ c.bagi()); System.out.println ("Pangkat : "+ c.pangkat ()); } Tambah : 12.0 }
Oleh : Andri Heryandi, M.T.
Kurang Kali Bagi Pangkat
: : : :
2.0 35.0 1.4 16807.0
19
CLASS NILAI IF34348 - Pemrograman Lanjut
Buatlah class Nilai Attribut
:
Quis bertipe double UTS bertipe double UAS bertipe double
Method
:
setQuis(double x) : Mengisi nilai quis setUTS(double x) : Mengisi nilai UTS setUAS(double x) : Mengisi nilai UAS getNA() : Mereturnkan nilai akhir berupa double getIndex() : Mereturnkan index berupa char getKeterangan() : Mereturnkan keterangan berupa String
Oleh : Andri Heryandi, M.T.
Rumus NilaiAkhir NA = 20% QUIS + 30%*UTS + 50% * UAS Aturan Index
NA NA NA NA NA
80..100 68..80 56..68 45..56 0..45
Index=‘A’ Index=‘B’ Index=‘C’ Index=‘D’ Index=‘E’
Aturan Keterangan
Index=‘A’ Index=‘B’ Index=‘C’ Index=‘D’ Index=‘E’
: : : : :
Sangat Baik Baik Cukup Kurang Sangat Kurang
20
CLASS NILAITESTER IF34348 - Pemrograman Lanjut
p u bli c c lass Nila iTe ster { pub lic stat ic v oid main (Str ing [] ar gs ) { N ilai n= new N il ai ( ) ; n .set Qui s (60) ; n .set UTS ( 8 0 ) ; n .set UAS ( 7 5 ) ; S yste m.o ut.pr in tl n ( " Q u i s : "+ n. Quis ) ; S yste m.o ut.pr intl n (" UTS : "+ n. UTS ) ; S yste m.o ut.pr in tl n (" UAS : "+ n. UAS ) ; S yste m.o ut.pr in tl n (" NA : "+ n. getN A () ); S yste m.o ut.pr in tl n (" Index : "+ n. getI nde x ( ) ) ; S yste m.o ut.pr in tl n ( " Keter anga n : "+ n. getK ete ranga n ()) ; } Quis : 60.0 }
Oleh : Andri Heryandi, M.T.
UTS UAS NA Index Keterangan
: : : : :
80.0 75.0 73.5 B Baik
21