Object Oriented Programming New Oop 230808025423 Fcf3dedc
Object Oriented Programming New Oop 230808025423 Fcf3dedc
PROGRAMMING (OOP)
DEFINISI
Pemrograman Berbasis Objek
Contoh :
Object : Manusia
Attribut : Nama, tinggi, umur, berat badan dll
Method : Makan, Minum, Berjalan, Bekerja
Object : Windows
Attribut : Left, Top, Width, Height, BackgroundColor,
Method : OnClick, OnClose, OnDoubleClick
Object : Keluarga
Attribut : ayah, Ibu, Anak[]
Method : TambahAnak,
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)
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.
p u b l i c c l a s s T e s t S t r i n g {
p u b l i c s t a t i c v o i d m a i n ( S t r i n g
[ ] a r g s ) {
S
S t
y r
s i
t n
e gm .n oa um ta .="p Ur ni in vt el rn s: i "t +a ns a Km oa m);
p
u
( t
" e
I r
S II S
n Td Ro In Ne Gs iSay"s;t e m : " + n a m a . l e n g t h ( )
. o u t . p r i n t l n (" P a n j ) ;
a n g S y s t e m . o u t . p r i : " + n a m a . t o U p p e r C
n t l n ( " U p p e r C a s e S y a s e ( ) ) ;
} s t e m . o u t . p r i n t l n ( " : " + n a m a . t o L o w e r C
a s e ( ) ) ;
} L o w e r C a s e S y s t e m . o
: " + n a m a . e q u a l s ( "
u t . p r i n t l n ( " = U N I K O U N I K O M " ) ) ;
M ISI STRING : Universitas Komputer Indonesia
Panjang 30
: UNIVERSITAS KOMPUTER INDONESIA
Upper Case :
Lower Case : universitas komputer indonesia
=UNIKOM false
:
Pemrograman Berorientasi Object
12
MEMBUAT CLASS SEDERHANA
Pemrograman Berbasis Objek
c l a T i t i k {
s s d o u b l
e x ; d o
u b l e
y ; T i t
i k (){
x = 0
; y x 1 , d o u b l
= e y 1 ) {
0 ;
}
T vi ot ii dk t( ad m p i l ( ) {
o u b l eS y s t e m . o u t . p r i n t l n ( "
x (= "x + x + " , " + y + " ) " ) ;
} 1 ;
v o i d py i= ny d a h ( d o u b l e x 1 ,
1 o
d ; u b l e y 1 ) { x = x 1 ;
}y = y 1 ;
} Pemrograman Berorientasi Object
15
CONTOH CLASS SEDERHANA
Pemrograman Berbasis Objek
v o p i n d a h ( T i
i d t i k t ) { x=
t.x ;
y= t.y ;
}
v o i d i s i X ( d o u
b l e x 1 ) {
x = x 1 ;
}
v
} o i d i s i Y ( d o
u
v b
o l
i e
d yi 1s )i {X Y ( d o u b l e y
y x= 1y ,1 d; o u b l e x = 1 )
x 1 ; {
y = y 1 ;
}
d o u b j a r a k K e ( d o u b l e x 1 ,
l e d o u b l e y 1 ) { d o u b l e j
a r a k ;
y 1 , 2 ) , 0 . 5j )a ;r a k = M a t h . p o w ( M a t
h e
r . tp u
o r
w n
(x j- ax r1 a, k2 ;) + M a t h
} . p o w (y -
d o u b l e j a r a k K e ( T
i t i k t2){ d o u
b l e j a r a k ;
j a r a k = M a t h . p o w (
M a t h . p o w (x -
t 2 . x , 2 ) + M a
t h . p o w (y -
t 2 . y , 2 ) , 0 . 5 ) ;
r e t u r n j a r a k ; Math.pow(x,y) = 𝑥 𝑦
}
}
p u b l i c c l a s s T i t i k T e s t e r {
p u b l i c s t a t i c v o i d m a i n ( S t
r i n Tg i[ t] ta 1r ,g ts 2) ;{
i k t T i t i k ( ) ; / / T a n p a p a r a m
1 = n e
T ti et ri kx (= 90 ,, xy == 90 ,
e y
S w stt e 4 m) .; o/ u/ t . p y = 4
2 i
r = n t ( " T 1 t 1 . : " ) ;
e a
t w m p i l ( ) ; S y : " )
s t e m . o u t . p r i ;
n t ( " T 2 t 2 . t a
m
S py is l
t (e )m ;. o u t . p r i n p i n T 1 :
t 1(". Sp ei tn ed la ah h( 5
t ,1 . t d a h " ) ;
1
a o
d )
m u;
p b
i l e ( j) a; r a k ; j a
r a k = t 1 . j a r a k K e (
t 2 ) ; S y s t e m . o u d a r i T1 ke T 2 : " + j a
} t . p r i n t l n (" J a r a r a k );
} k T1 : (0.0,0.0)
T2 : (9.0,4.0)
Setelah pindah T1 : (5.0,1.0)
Pemrograman Berorientasi Object
19
Jarak dari T1 ke T2 : 5.0
Membuat Class MObil
void cekKecepatan() {
if (kecepatan==0)
aktifitas="parkir";
}
void cetakAtribut() {
System.out.println("Aktifitas = "+aktifitas);
System.out.println("warna = "+warna);
System.out.println("Kecepatan = "+kecepatan);
}
public static void main(String [] args) {
Mobil mobilku = new Mobil();
mobilku.kecepatan=0;
mobilku.warna="merah";
mobilku.cekKecepatan();
mobilku.cetakAtribut();
}
}
CLASS CALCULATOR
Pemrograman Berbasis Objek
p u b c l a s s C a l c u l a t o r T e s t e r {
l i c p u b l i c s t a t i c v o i d m a i n ( S t
r i n g [ ] a r g s ) {
C a l c u l a t o r c = n e w C a l
c.isiOperan1(7);
c u l a t o r ( ) ;
c.isiOperan2(5);
S y s t e m . o u t . p r i n t : " + c . t a m b a
l n (" T a m b a h S y s t e m h ( ) ) ;
. o u t . p r i n t l n (" K u : " + c . k u r a n
g ( ) ) ;
r a n g S y s t e m . o u t .
: " + c . k a l i (
p r i n t l n ( " K a l i
) ) ;
} Sy s t e m . o u t . p r i n t
Tambah : 12.0 : " + c . b a g i (
} l n (" B a g i ) ) ;
S y s t e m . o u t . p :r i2.0
n t : " + c . p a n g k
Kurang
l n (" P a n g k a t : 35.0 a t ());
Kali : 1.4
Pemrograman Berorientasi Object Bagi
Pangkat : 16807.0 19
CLASS NILAI
Pemrograman Berbasis Objek
Pemrograman Berorientasi 20
Object
CLASS NILAITESTER
Pemrograman Berbasis Objek
p u b l i c c l a s s N i l a i T e s t
e r { a r g
p u b l i c s t a t i c v o i d m a s ) {
i n ( S t r i n g [ ]
N i l a i n = n e w N
i l a i (); n . s e t
Q u i s ( 6 0 ) ; : " + n . Q u i s );
n . s e t U T S (80); : " + n . U T S );
n.setUAS(75); : " + n . U A S );
S y s t e m . o u t . p r i : " + n . g e t N A
n t l n (" Quis ( ) ) ;
S
S y
y ss tt ee mm .. oo uu tt .. pp r
r ii n
n t l n : " + n . g e t I n d e x
t
("l Kn e( t" eU rT aS n Sg ya sn t e ());
}
m . o u t . p r i n t l n ( "Quis :
n .60.0
: " +g e t K e t e r
}
U A S S y s t e m . o u t . UTS a: n80.0
a n g( ) ) ;
p r i n t l n ( " N A S y s UAS : 75.0
t e m . o u t . p r i n t l n NA : 73.5
( " I n d e x Inde : B
Pemrograman Berorientasi Object x
Keterangan : Baik 21
PART II
PACKAGE
O
22
PACKAGE
Pemrograman Berbasis Objek
>>Akses : public
// Nama File : package1/Titik.java
package package1;
public class Titik {
public
Titik(){
Syste
m.out
.prin
// Nama File : package1/Tester.java
tln(" package yang sama
package package1;
Titik
class Tester { di
public static
packa void main(String[] args) {
geTitik t1=new Titik();
} 1");
} }
}
Kedua kelas berada pada
Pemrograman Berorientasi Object
36
PENGATURAN AKSES DI LEVEL KELAS
Pemrograman Berbasis Objek
>>Akses : public
// Nama File : package1/Titik.java
package package1;
public class Titik {
public
Titik(){
Syste
} m.out Class Titik berada di package
.prin bernama package1, Class
// Nama File : Tester.java
tln("
import package1.Titik;
Titik
Tester tidak memiliki package
class Tester { di
public static
packa void main(String[] args) {
geTitik t1=new Titik();
} 1");
} }
Access Levels
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y T
tanpa modifier Y Y T T
private Y T T T
Keterangan :
Y : Bisa diakses
T : Tidak bisa diakses
Alasannya adalah
Membatasi hak akses. Ini dilakukan agar sebuah member
tidak sembarangan dibaca atau diisi
Menyembunyikan informasi. Pengguna class tidak harus tahu
apa yang ada/terjadi di dalam class (Information Hiding)
>>Cukup? TidakPemrograman
. Karena atribut Quis, UTS dan UAS tidak bisa
Berorientasi Object
45
diakses dari mana pun.
CONTOH KASUS ACCESS MODIFIER
(METHOD SETTER DAN GETTER)
Pemrograman Berbasis Objek
Method (lanjutan)
tambahJam(int j) : Menambahkan j * 6 0 ke menitWaktu
tambahMenit(int m) : Menambahkan m ke menitWaktu
tambahWaktu(int j, int m) : Menambahkan j *60+ m ke menitWaktu
tampilWaktu() : Menampilkan jam dan menit.
p u b l i c class W a k t u T e s t e r {
public s t a t i c v o i d m a i n ( S t r i n
g [ ] args ) {
Waktu
S w o=u tn .ep w
ystem. Waktu
rin t l n ( ();
" T o t a l " + w . g e t T o t a l M e n it
1 . w . s e t J a m ( 1 0 ); Menit : ());
System.out .println ( " " + w . g e t T o t a l M e n it
2 . w . s e t M e n i t (57 ); T o t a l ());
System.out .println ( " " + w . g e t T o t a l M e n it
3 . w . t a m p i l W a ktu (); Menit : T o t ());
w . t a m b a h J a m (7 );
System.out .println ( " a
J l
A MMenit
" + w: . g e t J a m () : "+ w . g e t M e n i t ( )
4 . w . t a m b a h M e nit (40 : +" MENIT ) ;
); J A M " + w . g e t J a m () : "+ w . g e t M e n i t ( )
} System.out .println ( " : +" MENIT ) ;
} 5 .
1. Total Menit : 0
2. Total Menit : 600
3. Total Menit : 657
Waktu : 10:57
4. JAM : 17 MENIT : 57
Pemrograman Berorientasi 5. JAM : 18 MENIT : 37 50
Object
PART III
INHERITANCE
O
51
INHERITANCE (PEWARISAN)
Pemrograman Berbasis Objek
>>Contoh :
- (private)
+ (public)
# (protected)
>>Class
Binatang
Setiap Binatang
package pewarisan;
public class Binatang { mempunyai kesamaan,
private String nama;
public void setNama(String n){
yaitu mempunyai
nama=n; nama dan dapat
}
public String getNama(){
bersuara.
return nama;
}
public void bersuara(){
System.out.println(getNama()+" sedang bersuara.");
}
}
• >>Class BinatangTester
package pewarisan;
>>Class BurungTester
package pewarisan;
>>Class Mamalia
package pewarisan;
>>Class MamaliaTester
package pewarisan;
>>Class Elang
package pewarisan;
Pemrograman Berorientasi 64
Object
INHERITANCE (PEWARISAN)
Pemrograman Berbasis Objek
• >>Class ElangTester
package pewarisan;
Pemrograman Berorientasi 65
Object
INHERITANCE (PEWARISAN)
Pemrograman Berbasis Objek
>>Class Kakaktua
package pewarisan;
>>Class KakaktuaTester
package pewarisan;
>>Class Kuda
package pewarisan;
>>Class KudaTester
package pewarisan;
>>Class Sapi
package
pewarisan;
• >>Class SapiTester
•package pewarisan;
Pemrograman Berorientasi 71
Object
OVERRIDE CONSTRUCTOR
Pemrograman Berbasis Objek
Pemrograman Berorientasi 72
Object
OVERRIDE CONSTRUCTOR
Pemrograman Berbasis Objek
Contoh :
Class Waktu2 merupakan turunan dari class Waktu yang mempunyai
atribut baru bernama detik.
Pemrograman Berorientasi 73
Object
OVERRIDE CONSTRUCTOR
Pemrograman Berbasis Objek
>>Class Waktu
package pewarisan; Class Waktu mempunyai 2 buah
public class Waktu {
constructor yaitu :
private int jam; 1. Constructor tanpa
private int menit; parameter
2. Constructor dengan parameter
public Waktu(){
jam=0;
j (jam) dan m (menit).
menit=0;
}
public Waktu(int j, int m){
jam=j;
menit=m;
}
Pemrograman Berorientasi 74
Object
OVERRIDE CONSTRUCTOR
Pemrograman Berbasis Objek
>>Class Waktu
public void setJam(int jam){ Perhatikan pada method setJam.
this.jam=jam; Method ini memiliki parameter input
}
bernama jam. Class waktu juga
public int getJam(){
return jam;
mempunyai atribut bernama jam.
} Untuk membedakan jam dari
public void setMenit(int menit){ parameter dan jam milik atribut class,
this.menit=menit; gunakan keyword this.
} Keyword this menyatakan “milik class
public String getWaktu() ini”.
{ return
jam+":"+menit;
Pernyataan “this.jam=jam” berarti
} }
atribut jam milik class ini diisi dengan
jam dari parameter.
>>Class WaktuTester
package pewarisan; Hasil Run :
W1 : 0:0
public class WaktuTester {
public static void main(String[] args) { W2 : 5:7
Waktu w1, w2;
w1=new Waktu(); // memanggil constructor tanpa parameter
System.out.println("W1 : "+w1.getWaktu());
w2=new Waktu(5,7);// memanggil constructor dengan parameter
System.out.println("W2 : "+w2.getWaktu());
}
}
Pemrograman Berorientasi 76
Object
OVERRIDE CONSTRUCTOR
Pemrograman Berbasis Objek
>>Class Waktu2
package pewarisan;
Pemrograman Berorientasi 77
Object
OVERRIDE CONSTRUCTOR
Pemrograman Berbasis Objek
>>Class Waktu2Tester
public void setDetik(int detik){
this.detik=detik;
}
public int getDetik(){
return this.detik; // sama saja
dengan return detik;
}
public String getWaktu(){
return super.getWaktu()
+":"+detik;
// atau return getJam()
+":"+getMenit()+":"+detik;
}
}
Pemrograman Berorientasi 78
Object
OVERRIDE CONSTRUCTOR
Pemrograman Berbasis Objek
>>Class
Waktu2
Hasil Run :
package pewarisan; W1 : 0:0:0
public class Waktu2Tester {
W2 : 10:12:20
public static void main(String[] args) {
Waktu2 w1,w2;
w1=new Waktu2();
System.out.println("W1 : "+w1.getWaktu());
w2=new Waktu2(10,12,20);
System.out.println("W2 : "+w2.getWaktu());
}
}
Pemrograman Berorientasi 79
Object
POLYMORPH
Pemrograman Berbasis Objek
Pemrograman Berorientasi 80
Object
POLYMORPH
Pemrograman Berbasis Objek
Pemrograman Berorientasi 81
Object
POLYMORPH
Pemrograman Berbasis Objek
>>Class PolymorphTester
package pewarisan;
Pemrograman Berorientasi 82
Object
POLYMORPH
Pemrograman Berbasis Objek
Contoh Lain :
O
81
ABSTRACT
Pemrograman Berbasis Objek
: "+isi);
Pemrograman Berorientasi Object
} 87
}
CLASS ABSTRACT
Pemrograman Berbasis Objek
: "+isi);
Pemrograman Berorientasi Object
} 88
}
CLASS ABSTRACT
Pemrograman Berbasis Objek
at PegawaiTester.main(PegawaiTester.java:5)
}
}
Januar Kirim email ke :
>>Tampilan Output :
[email protected] Dengan Subjek : info
test
Dengan Isi : isi
email NIP : 1234
Nama : Januar
Bagian : Keuangan
Pemrograman Berorientasi Object
91
METHOD ABSTRACT
Pemrograman Berbasis Objek
>>Class Pegawai
public abstract class Pegawai {
private String NIP;
private String nama;
public Pegawai(String nama, String NIP){
this.nama=nama;
this.NIP=NIP;
} Hanya mendeklarasikan
public String getNama(){ nama method dan parameter
return nama;
} (tanpa isi method)
public String getNIP(){
return NIP;
}
public abstract void kirimEmail(String to, String subjek, String isi);
}
O
91
INTERFACE
Pemrograman Berbasis Objek
>>Class Mobikopter
public class Mobikopter implements Mobil, Helikopter{
private String nama;
Mobikopter(String nama){
this.nama=nama;
}
public void berjalan(){
System.out.print
ln(nama+" sedang
berjalan");
}
public void terbang(){
System.out.print
ln(nama+" sedang
terbang");
}
}
>>Class MobikopterTester
public class MobilkopterTester {
public static void main(String[] args)
{ Mobikopter m=new
Mobikopter("Moko"); m.berjalan();
m.terbang();
}
}
Hasil Run:
Moko sedang berjalan
Moko sedang terbang
O
106
FINAL
Pemrograman Berbasis Objek
>>Class MyMathTester
public class MyMathTester {
public static void main(String[] args) {
MyMath m=new MyMath();
System.out.println("PI : "+m.PI);
// m.PI=25.0; // pasti error
System.out.println("Luas Lingkaran : "+m.luasLingkaran(10));
System.out.println("Keliling Lingkaran : "+
m.kelilingLingkaran(10));
System.out.println("Sin(30) : "+m.sin(30));
System.out.println("Cos(30) : "+m.cos(30));
System.out.println("Tan(30) : "+m.tan(30));
System.out.println("2^8 : "+m.pangkat(2,8));
}
} Hasil Run:
PI : 3.1416
Luas Lingkaran : 314.16
Keliling Lingkaran : 62.832
Sin(30) : 0.49999999999999994
Cos(30) : 0.8660254037844387
Tan(30) : 0.5773502691896257
Pemrograman Berorientasi 2^8 : 256.0 110
Object
PART IV
(STATIC) 06
O
111
STATIC
Pemrograman Berbasis Objek
Contoh :
Math.PI
Math.sin()
Math.cos()
>>Class MyMath
public final class MyMath {
public static final double PI=3.1416;
public static double luasLingkaran(double radius){
return PI*radius*radius;
}
public static double kelilingLingkaran(double radius){
return 2*PI*radius;
}
public static double sin(double derajat){
return Math.sin(Math.toRadians(derajat));
}
public static double cos(double derajat){
return Math.cos(Math.toRadians(derajat));
}
public static double tan(double derajat){
return Math.tan(Math.toRadians(derajat));
}
public static double pangkat(double x, double y){
return Math.pow(x, y);
}
}
Pemrograman Berorientasi Object 118
STATIC
Pemrograman Berbasis Objek
>>Contoh Class :
public class MyVar {
public static int myStatic;
Variable Static
public int myInstance;
private String myName;
public void test(){ Variable Instance
int i;
i=0;
for(int j=1;j<=10;j++){ Variable Local
i+=2;
}
myInstance=i;
}
}