pengenalan oop
DESCRIPTION
Pengenalan OOP. Indriati ,ST ., M.Kom. MENGENAL OBJEK & CLASS. Paradigma Class dan Objek Berbagai benda di sekitar kita adalah objek nyata yang dapat dilihat , seperti : kucing , meja , rumah , orang , dll . - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/1.jpg)
Pengenalan OOPIndriati ,ST .,M.Kom
![Page 2: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/2.jpg)
MENGENAL OBJEK & CLASS
• Paradigma Class dan Objek Berbagai benda di sekitar kita adalah
objek nyata yang dapat dilihat, seperti : kucing, meja, rumah, orang , dll.
Persoalannya, bagaimana memindahkan pemikiran objek di dunia nyata menjadi objek di dunia software atau pemrograman, khususnya Java?
![Page 3: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/3.jpg)
MENGENAL OBJEK & CLASS
• Definisi class: merupakan template untuk membuat obyek.
• Definisi class: merupakan prototipe / blue prints yang mendefinisikan variabel – variabel dan method – method secara umum.
• Obyek merupakan hasil instansiasi dari suatu kelas.
• Proses pembentukan obyek dari suatu class disebut dengan instantiation.
• Obyek disebut juga instances.
![Page 4: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/4.jpg)
MENGENAL OBJEK & CLASS
• Ambil contoh objek nyata yang akan dipindahkan adalah objek orang.
• Jadi dapat diumpamakan bahwa Tuhan memiliki class Orang yang kemudian membuat banyak objek dari class Orang tsb, dan contoh objek tersebut adalah Anda sendiri.
• Dari definisi class Orang di atas, kita bisa membuat objek-objek berdasar class tersebut.
• Objek-objek yang dibuat perlu disimpan dalam variabel yang akan menyimpan referensi/address dari objek yang dibuat.
![Page 5: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/5.jpg)
MENGENAL OBJEK & CLASS
• Data Member – Setiap objek ‘orang’ pasti memiliki :
nama, tinggi badan, berat badan, warna rambut, warna kulit, jenis kelamin, menggunakan kacamata, dll
– Ciri-ciri tersebut dapat dipindahkan menjadi variabel-variabel dari class yang sering disebut sebagai : data member (data field/attribut).
![Page 6: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/6.jpg)
MENGENAL OBJEK & CLASS
– Contoh pemisalan objek orang nyata menjadi kode program dalam class Orang :
class Orang {String nama; //nama orangint tinggiBadan; //dalam cmint beratBadan; //dlm kgString warnaRambut; //hitam, pirang, coklatString warnaKulit; //sawoMatang, hitam, putihString jenisKelamin; //pria atau wanitaboolean berkacamata; //bila berkacamata berarti true
}
![Page 7: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/7.jpg)
MENGENAL OBJEK & CLASS
• Method– Selain memiliki atribut(STATE) yang diimplementasikan
sebagai data member di atas, manusia juga dapat melakukan suatu aksi atau pekerjaan tertentu (BEHAVIOR)
– Contoh aksi/behavior yang umum adalah menangis dan tertawa
– Kedua behavior tsb bisa dipindahkan ke dalam bahasa pemrograman menjadi method sbb :
void menangis() {System.out.println(“hik..hikk..hik…”);
}
void tertawa() {System.out.println(“ha..ha..ha..ha..”);
}
![Page 8: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/8.jpg)
MENGENAL OBJEK & CLASS
• Method merupakan perwujudan aksi atau tindakan dari dunia nyata di dalam pemrograman komputer.
• Method dalam dunia pemrograman juga “pasti melakukan sesuatu aksi”, misalnya menampilkan String di konsol
![Page 9: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/9.jpg)
MENGENAL OBJEK & CLASS
Memindahkan orang dari dunia nyata menjadi class Orang
![Page 10: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/10.jpg)
Ilustrasi perbedaan antara class dan objek
![Page 11: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/11.jpg)
MENGENAL OBJEK & CLASS
• Dari gambar di atas dapat dipahami bahwa suatu class dapat memiliki banyak objek, dan setiap objek akan mewarisi data member dan method yang sama dari class
• Untuk membuat objek Orang dari class Orang, gunakan keyword new sbb :Orang orang1 = new Orang(“Izzuddin A Afif”);
Orang orang2 = new Orang(“Muhammad Fairuz”); setiap objek dapat memiliki state atau nilai
data member yang berbeda (hanya nama dan tipe variabel yang sama)
![Page 12: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/12.jpg)
Ilustrasi pembuatan objek dari class
![Page 13: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/13.jpg)
Fitur OOP
• Encapsulation• Inheritance• Polymorphism
![Page 14: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/14.jpg)
Fitur OOP
• Enkapsulasi suatu cara untuk menyembunyikan implementasi detail dari suatu class dalam rangka menghindari akses yang ilegal. Contoh : konsep class & modifier.
• Inheritansi dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan. Contoh : extends
• Polymorphism kemampuan untuk merepresentasikan 2 bentuk yang berbeda. Contoh : overriding
![Page 15: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/15.jpg)
Deklarasi class<modifier> class <classname> {
[deklarasi_atribut]
[deklarasi_konstruktor]
[deklarasi_metode]
}
![Page 16: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/16.jpg)
Contoh
public class Mahasiswa
{
}
nama classmodifier
![Page 17: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/17.jpg)
Deklarasi Atribut / Membuat Variabel
<modifier> <tipe> <nama_atribut>;
![Page 18: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/18.jpg)
Contohpublic class Mahasiswa
{
public int nrp;
public String nama;
}
atribut
![Page 19: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/19.jpg)
Deklarasi metode<modifier> <return_type> <nama_metode>
([daftar_argumen])
{
[<statement>]
}
![Page 20: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/20.jpg)
Contohpublic class Mahasiswa {
public int nim;
public String nama;
public void info() {
System.out.println(nim + " " + nama + " " + "adalah Mahasiswa UB“);
}
}
metode
![Page 21: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/21.jpg)
Pengaksesan anggota obyek
Output1 Ahmad adalah Mahasiswa UB
![Page 22: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/22.jpg)
Life Cycle dari Objek
• Creation (Membuat objek)• Use (Menggunakan objek)• Destruction (Menghapus objek)
![Page 23: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/23.jpg)
Contohpublic class MyDate {
private int day=1;private int month=1;private int year=2000;
//konstruktorpublic MyDate(int day, int month, int
year) {…}}
public class TestMyDate {public static void main(String args[]) {
MyDate today = new MyDate(10,11,2006);
}}
![Page 24: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/24.jpg)
Declaring Objek (Membuat Objek)
• MyDate today = new MyDate(10, 11, 2006);
• Pernyataan diatas terdiri dari 3 langkah :– Deklarasi objek MyDate today ;– Alokasi Memori menggunakan kata kunci new
MyDate(10, 11, 2006);– Inisialisasi Objek tergantung dari
konstruktornya
![Page 25: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/25.jpg)
Membuat Objek
MyDate today = new MyDate(10, 11, 2006);
????today
![Page 26: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/26.jpg)
MyDate today = new MyDate(10, 11, 2006);
????today
0
0
0
day
month
year
Alokasi Memori objek today dengan tipe class MyDate
Mengisi atribut dengan default value
![Page 27: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/27.jpg)
MyDate today = new MyDate(10, 11, 2006);
????today
1
1
2000
day
month
year
Mengisi atribut dengan nilai inisialisasi eksplisit
![Page 28: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/28.jpg)
MyDate today = new MyDate(10, 11, 2006);
????today
10
11
2006
day
month
year
Menjalankan konstruktor
![Page 29: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/29.jpg)
MyDate today = new MyDate(10, 11, 2006);
0x01abcdeftoday
10
11
2006
day
month
year
Membuat Variabel Reference
![Page 30: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/30.jpg)
Men-assign reference variable
MyDate x = new MyDate(14, 6, 2005);
MyDate y = x;
0x01234567 14
6
2005
x
y 0x01234567
Variabel Reference x dan y
![Page 31: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/31.jpg)
Men-assign reference variable
MyDate x = new MyDate(14, 6, 2005);
MyDate y = x;
y = new MyDate(14, 6, 2005);
0x01234567
14
6
2005x
y 0x0123456814
6
2005
![Page 32: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/32.jpg)
Menggunakan Objek
• Ada 2 cara :– Memanipulasi variabelnya – Menggunakan metode dari objek tersebut
![Page 33: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/33.jpg)
Menghapus Objek
• The Garbage Collector– The Java platform has a garbage collector
that periodically frees the memory used by objects that are no longer needed
![Page 34: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/34.jpg)
Pass by value• Java tidak membolehkan adanya pass
by reference, jadi hanya mengijinkan pass by value.
• Ketika argumen yang di-passing adalah bertipe reference type, maka anggota-anggota (data member) dari argumen tersebut diperlakukan sebagai pass by reference, sedangkan argumennya tetap (dianggap) sebagai pass by value
![Page 35: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/35.jpg)
Tipe Argument
• Nilai yang dikirim melalui argument dapat berupa variabel reference maupun variabel biasa.
• Jika yang dikirim ke method adalah value atau variabel biasa Pass by value
• Jika yang dikirim ke method adalah alamat memori atau variabel reference Pass by reference
![Page 36: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/36.jpg)
Pass by Value
• Mengirimkan value/nilai ke parameter method
• Contoh :
String nama = “Shanti”;
Mahasiswa.getNama(nama);
Variabel biasa
![Page 37: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/37.jpg)
Pass by Reference
• Mengirimkan alamat memori/referensi ke parameter method
• Contoh :
Student maba = new Student();
Mahasiswa.getNama(maba);
Variabel reference
![Page 38: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/38.jpg)
Contohpublic class MyDate {
private int day=1;private int month=1;private int year=2000;public MyDate(int day, int month, int
year) {…
}public void setDay(int day) {
// change the day}public void print() {
// print the day, month and year}
}
![Page 39: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/39.jpg)
public class TestMyDate {public static void changeInt(int value) {
value = 10;}public static void changeObjectRef(MyDate
ref) {ref = new myDate(3, 5, 2003);
}public static void changeObjectAttr(Mydate
ref) {ref.setDay(5);
}public static void main(String args[]) {
int x=5;changeInt(x);System.out.println(x);MyDate today=new
MyDate(10,10,2005);changeObjectRef(today);today.print();changeObjectAttr(today);today.print();
}}
![Page 40: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/40.jpg)
Hasil eksekusi
> java TestMyDate
5
10-10-2005
5-10-2005
![Page 41: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/41.jpg)
Class Fundamentals: main method
• The main() Methodpublic static void main(String[] args)
· public : method main() dapat diakses oleh apa saja, termasuk java technology interpreter.
· static : keyword ini berfungsi untuk memberi tahu kompiler bahwa method main bisa langsung digunakan dalam context class
yang bersangkutan. Untuk mengeksekusi/menjalankan method
yang bertipe static, tidak diperlukan instance nya.
· void : menunjukkan bahwa method main() tidak mengembalikan nilai· main : merupakan nama method utama dari program java· String [] args : Menyatakan bahwa method main() menerima single parameter yaitu args yang bertipe array. Digunakan pada saat memasukkan
parameter pada saat menjalankan program.
Contoh: java TestGreeting args[0] args[1] …
![Page 42: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/42.jpg)
Contoh Program
• Implementasikan UML class diagram dalam program untuk class Tabungan
Tabungan
- saldo : int+ Tabungan(initsaldo : int)+ getSaldo() : int+ simpanUang(jumlah : int)+ ambilUang(jumlah : int) : boolean
OutputJumlah uang yang disimpan : 8000Jumlah uang yang diambil : 6000 trueJumlah uang yang disimpan : 5500Jumlah uang yang diambil : 4000 trueJumlah uang yang diambil : 1600 falseJumlah uang yang disimpan : 3500Saldo : 3500
![Page 43: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/43.jpg)
![Page 44: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/44.jpg)
![Page 45: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/45.jpg)
Class Customer
![Page 46: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/46.jpg)
![Page 47: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/47.jpg)
OutputYuliana, Setiowati Age:29Stanley, Clark Age:8Jane, Graff Age:16Nancy, Goodyear Age:69
![Page 48: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/48.jpg)
Class Customers
OutputYuliana Setiowati Age:29Stanley Clark Age:8Jane Graff Age:16Nancy Goodyear Age:6912000
![Page 49: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/49.jpg)
Class TestCustomer2
![Page 50: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/50.jpg)
Data Member
• Disebut juga variabel atau atribut• Variabel dibagi menjadi dua :
– Variabel instance : variabel yang dimiliki oleh setiap objek. Masing-masing objek mempunyai nilai variabel instance yang berbeda
– Variabel class : variabel yang dimiliki oleh class. Semua objek dari class tersebut akan mempunyai nilai yang sama. Ciri dari variabel class dengan menambahkan kata kunci static contoh private static double bunga
![Page 51: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/51.jpg)
Contoh Program
• Class Tabungan2 terdiri dari dua variabel:– Variabel instance : saldo– Variabel class : bunga (kata kunci static)
• Method public String toString() mengubah objek menjadi String
![Page 52: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/52.jpg)
![Page 53: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/53.jpg)
![Page 54: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/54.jpg)
Method Overload
• Sebuah class dapat memiliki beberapa method dengan nama yang sama.
• Pembeda antara method-method tersebut adalah parameter.
![Page 55: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/55.jpg)
contoh
public void print (String temp){System.out.println(“Name:”+name);System.out.println(“Address:”+address);System.out.println(“Age”+age);
}
public void print(double eGrade, double mGrade, double sGrade){System.out.println(“Name”+name);System.out.println(“Math Grade”+mGrade);System.out.println(“English Grade”+eGrade);System.out.println(“Science Grade”+sGrade);
}
![Page 56: Pengenalan OOP](https://reader036.vdocuments.mx/reader036/viewer/2022081505/56815754550346895dc4fbee/html5/thumbnails/56.jpg)
• Tipe data dalam Java: primitive dan reference
• Dalam meng-evaluasi sebuah expression, perhatikan precedence dan associativity dari operator, dan tipe operand
• Flow Control: branch, loop• Class & Object
– Object adalah instance dari class– Behaviour sebuah object dinyatakan
dalam method– State sebuah object dinyatakan dalam
field
Ringkasan